我的示例xml值看起来像
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
我需要将其添加<Shop>KFC</Shop>
到食物标签中,我的输出应如下所示
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
<Shop>KFC</Shop>
</food>
我尝试过UpdateXml,但行为有所不同。MySql中可用的xml函数是否可以做到这一点?
我是MySql的新手。请帮我弄清楚这个..预先感谢..
更新:
我尝试了这段代码
select UpdateXML('<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>', '/food/Shop', '<Shop>KFC</Shop>');
在第二个参数中,我尝试'/food/Shop'
仅使用,'/food'
但未给出预期的结果
事实证明,在MySql中这样做有点棘手。您可以通过用+新节点替换现有<calories>
节点来实现。<calories>
<shop>
使用ExtractValue()
函数获取现有值<calories>
和构造<calories>value</calories>
块:
set @data = N'<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>';
set @data =UpdateXML(@data,
'/food/calories',
concat(
'<calories>',
ExtractValue(@data, '/food/calories'),
'</calories><Shop>KFC</Shop>'
)
);
select @data
相似的问题:MySQL更新XML属性
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句