Как использовать XPATH в MySQL select? - PullRequest
5 голосов
/ 08 декабря 2008

Скажем, у меня есть таблица с именем "xml", в которой файлы XML хранятся в одном столбце "данные". Как мне написать запрос MySQL, который запускает XPath и возвращает только строки, соответствующие этому XPath?

Ответы [ 2 ]

8 голосов
/ 08 декабря 2008
SELECT * FROM xml
WHERE EXTRACTVALUE(data, '<xpath-expr>') != '';

Тем не менее, вы должны заметить, что MySQL поддерживает XPath.

  • EXTRACTVALUE() возвращает только CDATA.
  • Не все конструкции XPath поддерживаются. Подробности под заголовком «Ограничения XPath» на doc page , упомянутые в ответе Абатищева.
0 голосов
/ 08 декабря 2008

Я только что получил ответ от коллеги, кажется, часто помогает обрезка xml:

select * from xml where 
   trim(both '\r\n' from ExtractValue(xml, '/some/xpath')) = 'value';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...