明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

MySQL數(shù)據(jù)庫查詢設(shè)置XML的經(jīng)驗分享

[摘要]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

1816.png

2.然后為測試表添加一條記錄。記錄為xml格式。

1817.png

3.我們首先使用EXTRACTVALUE函數(shù)查出名字為張三節(jié)點內(nèi)容?梢栽谙旅娴妮敵隹蚩匆娢覀冋业降膹埲(jié)點內(nèi)容,xpath格式如下

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

1818.png

4.現(xiàn)在我們有查詢class節(jié)點下所有name節(jié)點的值。

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

1819.png

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。

1820.png

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>')

1821.png

7.使用Update語句更新數(shù)據(jù)庫內(nèi)容。

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

1822.png

1823.png

注意事項

使用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知識。