在WHERE子句中使用Mysql EXTRACTVALUE函数

时间:2016-09-16 05:52:53

标签: mysql

我有一条像这样的消息

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

我需要一个select查询来满足哪个xml具有id =“31”属性值 我只是传递id值来选择查询

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

但是此查询返回“未找到行”结果 请帮帮我

1 个答案:

答案 0 :(得分:0)

您可以使用XPath boolean函数检查是否存在ID为31的根级<message>标记:

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

<强>更新

如果要删除ID为31的记录,可以尝试:

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

在这里演示:

SQLFiddle