您好,登錄后才能下訂單哦!
小編給大家分享一下mysql數(shù)據(jù)庫(kù)中有沒(méi)有json類(lèi)型,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
mysql有json類(lèi)型。MySQL從5.7版本開(kāi)始,引入了JSON數(shù)據(jù)類(lèi)型,可以直接操作json數(shù)據(jù);但MySQL5.7版本以下,在表中保存JSON格式類(lèi)型的數(shù)據(jù),則需要依靠varchar或者text之類(lèi)的數(shù)據(jù)類(lèi)型。
MySQL中的JSON類(lèi)型
json是一個(gè)非常好用的數(shù)據(jù)類(lèi)型,在mysql5.7之前人們都是用string來(lái)儲(chǔ)存json的,但是這樣有個(gè)問(wèn)題就是不能操作json,5.7以后就可以直接操作json數(shù)據(jù)了。
{ "bill": [ { "bill": [ { "id": "C81AEAD03F90000142E81B405F6FADC0", "uuid": "cfd872541b3b4507a50c2b2eda6bef28", "billid": "kjdzyljgmzsfzypj", "pageno": [], "billver": "V1", "billname": "新增測(cè)試", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 13, "left": 7 } ], "billValue": {}, "isOtherZL": "", "billNumber": "", "fjTMNumber": "" }, { "id": "C81AED69D6400001A07818551D9EBEC0", "uuid": "05d87c8052cd44209c684407d200b7ec", "billid": "opztsfpsgd", "pageno": [], "billver": "V1", "billname": "發(fā)票申購(gòu)", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 13, "left": 7 } ], "isOtherZL": "", "billNumber": "", "fjTMNumber": "" } ], "index": "", "dependBjBill": { "formula": "", "keyView": "" }, "codeCondition": { "formula": "", "keyView": "" }, "billRuleCondition": { "formula": "", "keyView": "" } }, { "bill": [ { "id": "C81AED84903000019B29EAB0196014CE", "uuid": "0d93fe614d09489cbad8fa5a3d160289", "billid": "kjdzcwgwht", "pageno": [], "billver": "V1", "billname": "財(cái)務(wù)顧", "fjNumber": "", "trueName": "", "allPageno": [ { "top": 39, "left": 7 } ], "isOtherZL": "", "billNumber": "", "fjTMNumber": "" } ], "index": "", "dependBjBill": { "formula": "", "keyView": "" }, "codeCondition": { "formula": "", "keyView": "" }, "billRuleCondition": { "formula": "", "keyView": "" } } ], "questions": [], "relyonCondition": {} }
結(jié)構(gòu)是這樣的,我們要查詢最底層uuid!按條件查bill下是一個(gè)數(shù)組 里面的bill還是一個(gè)數(shù)組那么要查最底層的uuid怎么查呢?
;
個(gè)人更喜歡用類(lèi)似lambda這種方法畢竟這是一個(gè)有逼格又好看的操作:
SELECT content_json->'$.bill[*].bill[*].uuid' from b WHERE JSON_CONTAINS(content_json->'$.bill[*].bill[*].uuid' ,'["cfd872541b3b4507a50c2b2eda6bef28"]')
查詢結(jié)果
代碼分析:
content_json->’$.bill[].bill[].uuid’ ;
表示content_json字段
"$"是必須符號(hào) 點(diǎn)代表對(duì)象
*代表全部
那么代碼意思就是查詢content_json字段里面全部bill(第一個(gè))中全部bill(第二個(gè))的uuid組成一個(gè)數(shù)組返回;
where后面跟著的條件的意思是 存在某個(gè)值 這個(gè)值可以是一個(gè)也可以是多個(gè)
JSON_CONTAINS(字段,參數(shù));
字段必須是要查的指定值如 content_json->’$.bill[].bill[].uuid’ ;
參數(shù)必須是json類(lèi)型 string是不行的。
以上是mysql數(shù)據(jù)庫(kù)中有沒(méi)有json類(lèi)型的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。