mysql xml_MySQL数据库查询操作XML的经验分享

mysql里面有内置的操作xml的函数。分别是ExtractValue()和UpdateXML()函数。

语法:EXTRACTVALUE (fiedname, XPathstring);

第一个参数:fiedname是String格式,为表中的字段名第二个参数:XPathstring (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。作用:从目标XML中返回包含所查询值的字符串

UPDATEXML (fiedname, XPathstring, new_value);第一个参数:fiedname是String格式,为表中的字段名第二个参数:XPathstring (Xpath格式的字符串)

第三个参数:new_value,String格式,替换查找到的符合条件的数据 作用:改变文档中符合条件的节点的值

相关mysql视频教程推荐:《mysql教程》

1.首先我们创建一个测试的表。CREATE TABLE `testtable` ( `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1

2cd1bd4b766a415fc74804f35209e969.png

2.然后为测试表添加一条记录。记录为xml格式。

88331cef6d6cc920e00301f95cf4383f.png

3.我们首先使用EXTRACTVALUE函数查出名字为张三节点内容。可以在下面的输出框看见我们找到的张三节点内容,xpath格式如下extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'

84e264790af0a1910605126310ff99cc.png

4.现在我们有查询class节点下所有name节点的值。extractvalue(testxml,'/Student/Class/Name'

0a3ef1057782ef67d14c8341fea565e0.png

5.接下来我们用updatexml函数来改变xml的节点内容。extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),

Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')

,把zhangsan节点内容换为updatename。

e174f40dd7874e5287e4cc8e0d2c1d34.png

6.从上面的结果中看到xml结构在我们使用updatexml后,少了一个name节点。我们只需要替换时把更新值加上节点即可。extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),

Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')

aaa4ae8cf600091a6d7f4a580ed6a99d.png

7.使用Update语句更新数据库内容。UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')

60655542f4aedcf35b52a2c229d20f1e.png

48ee3d9da48e261f9e54e0a973b26d94.png

注意事项

使用UpdateXml我们只是改变了查出字段的内容,并没有更新数据库,如果你需要更新数据库,需要用update语句更新

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值