gpt4 book ai didi

mysql - 如何在 MySql 中将节点添加到 xml 值

转载 作者:行者123 更新时间:2023-11-29 02:24:32 25 4
gpt4 key购买 nike

我的示例 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 但行为不同。是否可以使用可用的 xml 函数在 MySql 中执行此操作?

我是 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> block :

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

Fiddle demo for this answer

类似问题:MySQL to update an XML attribute

关于mysql - 如何在 MySql 中将节点添加到 xml 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25117033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com