假设我有一个名为“xml”的表,它将XML文件存储在单个列“data”中。我如何编写运行XPath的MySQL查询并仅返回与该XPath匹配的行?
答案 0 :(得分:8)
SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';
但是,您应该注意到MySQL对XPath的支持存在限制。
EXTRACTVALUE()
仅返回CDATA。答案 1 :(得分:0)
我刚从同事那里得到答案,似乎修剪xml经常会有所帮助:
select * from xml where
trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';