【问题标题】:How to use XPATH in MySQL select?如何在 MySQL 选择中使用 XPATH?
【发布时间】:2008-12-08 12:58:00
【问题描述】:

假设我有一个名为“xml”的表,它将 XML 文件存储在单列“数据”中。我将如何编写运行 XPath 并仅返回与该 XPath 匹配的行的 MySQL 查询?

【问题讨论】:

    标签: sql mysql xpath


    【解决方案1】:
    SELECT * FROM xml
    WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';
    

    但是,您应该注意,MySQL 对 XPath 的支持存在限制。

    • EXTRACTVALUE() 仅返回 CDATA。
    • 并非所有 XPath 结构都受支持。在 abatishchev 的回答中提到的文档 page 的“XPath 限制”标题下的详细信息。

    【讨论】:

      【解决方案2】:

      我刚从一位同事那里得到答案,看来修剪 xml 经常有帮助:

      select * from xml where 
         trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        • 2020-01-20
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多