Как выбрать значение атрибута XML в MySQL? - PullRequest
0 голосов
/ 21 сентября 2018
          <category field="height">
            <num>185</num>
          </category>
          <category field="weight">
            <num>90</num>
          </category>

Мне нужно получить значение из тега num только из тега category, где атрибут field равен weight.

Примечание: field="height" может отсутствовать в XML.

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Попробуйте это:

SELECT ExtractValue('<category field="height"><num>185</num></category><category field="weight"><num>90</num></category>', 'category/num[../@field="weight"]');

То есть

SELECT ExtractValue(Column, 'category/num[../@field="weight"]');
0 голосов
/ 21 сентября 2018

Чтобы выбрать элементы num, родительский атрибут которых category field равен "weight":

ExtractValue(xml, '//category[@field="weight"]/num')
0 голосов
/ 21 сентября 2018

Найденное решение: SELECT ExtractValue(xml, '//category/num[../@field="weight"]');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...