mysql查询返回xml格式_MySQL数据库查询操作XML的经验分享
mysql里面有內(nèi)置的操作xml的函數(shù)。分別是ExtractValue()和UpdateXML()函數(shù)。
語(yǔ)法:1EXTRACTVALUE (fiedname, XPathstring);
第一個(gè)參數(shù):fiedname是String格式,為表中的字段名第二個(gè)參數(shù):XPathstring (Xpath格式的字符串) ,如果不了解Xpath語(yǔ)法,可以在網(wǎng)上查找教程。作用:從目標(biāo)XML中返回包含所查詢值的字符串
UPDATEXML (fiedname, XPathstring, new_value);第一個(gè)參數(shù):fiedname是String格式,為表中的字段名第二個(gè)參數(shù):XPathstring (Xpath格式的字符串)
第三個(gè)參數(shù):new_value,String格式,替換查找到的符合條件的數(shù)據(jù) 作用:改變文檔中符合條件的節(jié)點(diǎn)的值
相關(guān)mysql視頻教程推薦:《mysql教程》
1.首先我們創(chuàng)建一個(gè)測(cè)試的表。1CREATE TABLE `testtable` (?? `testxml` text ) ENGINE=InnoDBDEFAULT CHARSET=latin1
2.然后為測(cè)試表添加一條記錄。記錄為xml格式。
3.我們首先使用EXTRACTVALUE函數(shù)查出名字為張三節(jié)點(diǎn)內(nèi)容。可以在下面的輸出框看見(jiàn)我們找到的張三節(jié)點(diǎn)內(nèi)容,xpath格式如下1extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
4.現(xiàn)在我們有查詢class節(jié)點(diǎn)下所有name節(jié)點(diǎn)的值。1extractvalue(testxml,'/Student/Class/Name'
5.接下來(lái)我們用updatexml函數(shù)來(lái)改變xml的節(jié)點(diǎn)內(nèi)容。1
2
3extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
,把zhangsan節(jié)點(diǎn)內(nèi)容換為updatename。
6.從上面的結(jié)果中看到xml結(jié)構(gòu)在我們使用updatexml后,少了一個(gè)name節(jié)點(diǎn)。我們只需要替換時(shí)把更新值加上節(jié)點(diǎn)即可。1
2extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
7.使用Update語(yǔ)句更新數(shù)據(jù)庫(kù)內(nèi)容。1UPDATE testtableSET testxml=? Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
注意事項(xiàng)
使用UpdateXml我們只是改變了查出字段的內(nèi)容,并沒(méi)有更新數(shù)據(jù)庫(kù),如果你需要更新數(shù)據(jù)庫(kù),需要用update語(yǔ)句更新
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的mysql查询返回xml格式_MySQL数据库查询操作XML的经验分享的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python调用父类构造函数需要放在第一
- 下一篇: mysql 密码sha256_MySQL