【发布时间】:2008-12-08 12:58:00
【问题描述】:
假设我有一个名为“xml”的表,它将 XML 文件存储在单列“数据”中。我将如何编写运行 XPath 并仅返回与该 XPath 匹配的行的 MySQL 查询?
【问题讨论】:
假设我有一个名为“xml”的表,它将 XML 文件存储在单列“数据”中。我将如何编写运行 XPath 并仅返回与该 XPath 匹配的行的 MySQL 查询?
【问题讨论】:
SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';
但是,您应该注意,MySQL 对 XPath 的支持存在限制。
EXTRACTVALUE() 仅返回 CDATA。【讨论】:
我刚从一位同事那里得到答案,看来修剪 xml 经常有帮助:
select * from xml where
trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';
【讨论】: