2016-09-16 3 views
3

У меня есть сообщение XML, как этотфункции Mysql EXTRACTVALUE использование в ИНЕКЕ

<message id="31" type="chat" xml:lang="en"><body>sds</body></message> 

мне нужен запрос на выборке для удовлетворяете условия, которые XML, имеющий идентификатор = «31» значение атрибут я просто передать значение идентификатора для выбора запроса

select * from table where ExtractValue(xml,'/message[@id="31"]') = 31 

Но это возвращение запрос «не найдено строк» ​​результат Пожалуйста, помогите мне

ответ

0

Вы можете использовать XPath boolean функция проверки на наличие корневого уровня <message> теги, идентификатор 31:

SELECT * 
FROM table 
WHERE ExtractValue(`xml`, 'boolean(/message[@id=31])') 

Update:

Если вы хотите удалить записи с идентификатором 31, то вы можете попробовать:

DELETE 
FROM table 
WHERE ExtractValue(`xml`, 'boolean(/message[@id=31])') 

Демо здесь:

SQLFiddle

+0

У меня есть соответствующая запись в моей БД, тогда я получаю результат –

+0

Мне нужно удалить ту строку, которая удовлетворяет id = 31 –

+0

Я просто попробую ваш запрос, но его не работает для меня –

Смежные вопросы