MySQL資料庫查詢操作XML的經驗分享

黄舟
發布: 2019-02-22 14:39:13
原創
8386 人瀏覽過

mysql裡面有內建的操作xml的函數。分別是ExtractValue()和UpdateXML()函數。

語法:

EXTRACTVALUE (fiedname, XPathstring);
登入後複製

第一個參數:fiedname是String格式,為表格中的欄位名稱第二個參數:XPathstring (Xpath格式的字串) ,如果不了解Xpath語法,可以在網路上找到教程。作用:從目標XML傳回包含所查詢值的字串

UPDATEXML (fiedname, XPathstring, new_value);第一個參數:fiedname是String格式,為表中的欄位名稱第二個參數: XPathstring (Xpath格式的字串)

第三個參數:new_value,String格式,取代查找到的符合條件的資料作用:改變文件中符合條件的節點的值

相關mysql影片教學推薦:《mysql教學

#1.首先我們建立一個測試的表。

CREATE TABLE `testtable` (   `testxml` text ) ENGINE=InnoDB DEFAULT CHARSET=latin1
登入後複製

MySQL資料庫查詢操作XML的經驗分享

2.然後為測試表新增一筆記錄。記錄為xml格式。

MySQL資料庫查詢操作XML的經驗分享

3.我們先使用EXTRACTVALUE函數查出名字為張三節點內容。可以在下面的輸出框看見我們找到的張三節點內容,xpath格式如下

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'
登入後複製

MySQL資料庫查詢操作XML的經驗分享

4.現在我們有查詢class節點下所有name節點的值。

 extractvalue(testxml,'/Student/Class/Name'
登入後複製

MySQL資料庫查詢操作XML的經驗分享

5.接下來我們用updatexml函數來改變xml的節點內容。

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
,把zhangsan节点内容换为updatename。
登入後複製

MySQL資料庫查詢操作XML的經驗分享

6.從上面的結果看到xml結構在我們使用updatexml後,少了一個name節點。我們只需要替換時把更新值加上節點即可。

extractvalue(testxml,'/Student/Class/Name[self:text()="zhangsan"]'),  
Updatexml(testxml,'/Student/Class/Name[self:text()="zhangsan"]','updatename')
登入後複製

MySQL資料庫查詢操作XML的經驗分享

7.使用Update語句更新資料庫內容。

UPDATE testtableSET testxml=  Updatexml(testxml,&#39;/Student/Class/Name[self:text()="zhangsan"]&#39;,&#39;<Name>updatename</Name>&#39;)
登入後複製

MySQL資料庫查詢操作XML的經驗分享

MySQL資料庫查詢操作XML的經驗分享

注意事項

使用UpdateXml我們只是改變了查出欄位的內容,並沒有更新資料庫,如果你需要更新資料庫,需要用update語句更新

以上是MySQL資料庫查詢操作XML的經驗分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!