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


本文摘自PHP中文网,作者黄舟,侵删。

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

语法:

1

EXTRACTVALUE (fiedname, XPathstring);

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

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

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

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

1.首先我们创建一个测试的表。

1

CREATE TABLE `testtable` (   `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1

1816.png

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

1817.png

3.我们首先使用EXTRACTVALUE函数查出名字为张三节点内容。可以在下面的输出框看见我们找到的张三节点内容,xpath格式如下

1

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

1818.png

4.现在我们有查询class节点下所有name节点的值。

1

extractvalue(testxml,'/Student/Class/Name'

1819.png

5.接下来我们用updatexml函数来改变xml的节点内容。

1

2

3

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

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

,把zhangsan节点内容换为updatename。

1820.png

6.从上面的结果中看到xml结构在我们使用updatexml后,少了一个name节点。我们只需要替换时把更新值加上节点即可。

1

2

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

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

1821.png

7.使用Update语句更新数据库内容。

1

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

1822.png

1823.png

注意事项

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

以上就是MySQL数据库查询操作XML的经验分享的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql 5.7.20绿色版安装详细图文教程

mysql之通过配置文件链接数据库的示例详解

mysql中sql块的用法是什么

pandas操作mysql的方法详解

mysql中调试存储过程最简单的方法

数据库添加语句是什么

为什么使用mysql

mysql导入大批量数据出现mysql server has gone away的解决方法

常见的数据库软件有哪几种

在activereports中如何使用mysql数据库

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...