MySQL數(shù)據(jù)庫查詢設(shè)置XML的經(jīng)驗分享
發(fā)表時間:2023-07-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]mysql里面有內(nèi)置的操作xml的函數(shù)。分別是ExtractValue()和UpdateXML()函數(shù)。語法:EXTRACTVALUE (fiedname, XPathstring);第一個參數(shù):f...
mysql里面有內(nèi)置的操作xml的函數(shù)。分別是ExtractValue()和UpdateXML()函數(shù)。
語法:
EXTRACTVALUE (fiedname, XPathstring);
第一個參數(shù):fiedname是String格式,為表中的字段名第二個參數(shù):XPathstring (Xpath格式的字符串) ,如果不了解Xpath語法,可以在網(wǎng)上查找教程。作用:從目標(biāo)XML中返回包含所查詢值的字符串
UPDATEXML (fiedname, XPathstring, new_value);第一個參數(shù):fiedname是String格式,為表中的字段名第二個參數(shù):XPathstring (Xpath格式的字符串)
第三個參數(shù):new_value,String格式,替換查找到的符合條件的數(shù)據(jù) 作用:改變文檔中符合條件的節(jié)點的值
1.首先我們創(chuàng)建一個測試的表。
CREATE TABLE `testtable` ( `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1
2.然后為測試表添加一條記錄。記錄為xml格式。
3.我們首先使用EXTRACTVALUE函數(shù)查出名字為張三節(jié)點內(nèi)容?梢栽谙旅娴妮敵隹蚩匆娢覀冋业降膹埲(jié)點內(nèi)容,xpath格式如下
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
4.現(xiàn)在我們有查詢class節(jié)點下所有name節(jié)點的值。
extractvalue(testxml,'/Student/Class/Name'
5.接下來我們用updatexml函數(shù)來改變xml的節(jié)點內(nèi)容。
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
,把zhangsan節(jié)點內(nèi)容換為updatename。
6.從上面的結(jié)果中看到xml結(jié)構(gòu)在我們使用updatexml后,少了一個name節(jié)點。我們只需要替換時把更新值加上節(jié)點即可。
extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')
7.使用Update語句更新數(shù)據(jù)庫內(nèi)容。
UPDATE testtableSET testxml= Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','<Name>updatename</Name>')
注意事項
使用UpdateXml我們只是改變了查出字段的內(nèi)容,并沒有更新數(shù)據(jù)庫,如果你需要更新數(shù)據(jù)庫,需要用update語句更新
以上就是MySQL數(shù)據(jù)庫查詢操作XML的經(jīng)驗分享的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。