本文摘自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
|
2.然后为测试表添加一条记录。记录为xml格式。
3.我们首先使用EXTRACTVALUE函数查出名字为张三节点内容。可以在下面的输出框看见我们找到的张三节点内容,xpath格式如下
1 | extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
|
4.现在我们有查询class节点下所有name节点的值。
1 | extractvalue(testxml,'/Student/Class/Name'
|
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。
|
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>' )
|
7.使用Update语句更新数据库内容。
1 | UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','< Name >updatename</ Name >')
|
注意事项
使用UpdateXml我们只是改变了查出字段的内容,并没有更新数据库,如果你需要更新数据库,需要用update语句更新
以上就是MySQL数据库查询操作XML的经验分享的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
实例详解mysql解压包的安装基础教程
mysql中复制详细解析
了解mysql中的外键作用
安装最新版本mysql导致登录phpmyadmin报错
mysql类型转换导致行锁升级为表锁
mysql数据类型教程示例详解
mysql数据库如何允许远程连接?
在navicat中如何设置数据库的操作权限
mysql求和函数使用示例
mysql怎么查询每个表有多少条记录
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » MySQL数据库查询操作XML的经验分享