我有一条像这样的消息
<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
但是此查询返回“未找到行”结果 请帮帮我
答案 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])')
在这里演示: