濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > MySQL中查詢(xún)json格式的字段實(shí)例詳解

MySQL中查詢(xún)json格式的字段實(shí)例詳解

熱門(mén)標(biāo)簽:武漢網(wǎng)絡(luò)外呼系統(tǒng)服務(wù)商 百應(yīng)電話(huà)機(jī)器人優(yōu)勢(shì) 南昌三維地圖標(biāo)注 地圖標(biāo)注費(fèi)用是多少 曲靖移動(dòng)外呼系統(tǒng)公司 外呼系統(tǒng)打電話(huà)上限是多少 啥是企業(yè)400電話(huà)辦理 電話(huà)外呼系統(tǒng)改號(hào) 怎樣在地圖標(biāo)注銷(xiāo)售區(qū)域

工作開(kāi)發(fā)過(guò)程遇到一個(gè)需求:需要?jiǎng)討B(tài)存儲(chǔ)客戶(hù)的姓名、手機(jī)號(hào)碼、身份證、證件類(lèi)型,意思是可能前端會(huì)傳一個(gè)人或二個(gè)人或者三個(gè)人的信息是動(dòng)態(tài)的不固定人數(shù)的四個(gè)字段(姓名、手機(jī)號(hào)碼、身份證、證件類(lèi)型)。

前端頁(yè)面如下:

我是使用List來(lái)接收前端傳過(guò)來(lái) json,mysql 用 varchar 來(lái)保存這個(gè) json 數(shù)組

[{
	"cardId": "110101199003072316",
	"cstName": "張雙兒1",
	"cstMobile": "13263654144",
	"idCardType": "1"
}, {
	"cardId": "11010119900307571X",
	"cstName": "張雙兒2",
	"cstMobile": "13263654144",
	"idCardType": "1"
}]

產(chǎn)品提出來(lái)的需求是要模糊查詢(xún)這些聯(lián)名客戶(hù)信息,一開(kāi)始我錯(cuò)誤的寫(xiě)法:

select * from signCustomerGroup like ‘%兒%'

但是后來(lái)發(fā)現(xiàn)有問(wèn)題,比如 模糊輸入一個(gè)字母 c ,就會(huì)把左邊‘cardId' 的英文字段名稱(chēng)匹配上。
后來(lái)我了解到 MySQL 5.7 以后版本加入了 json 類(lèi)型,可以使用json類(lèi)型的一些函數(shù)直接查詢(xún)json格式的某個(gè)字段。

正確語(yǔ)法如下:

表字段:

id sign_customer_info_ext
1 [{“cstName”:“hhjk”,“cstMobile”:“14258669888”,“idCardType”:“1”,“cardId”:“460101199601012516”}]
2 [{“cstName”:“ghhj中文1355”,“cstMobile”:“18253558608”,“idCardType”:“1”,“cardId”:“460101199601012815”},{“cstName”:“fhjj重要133366”,“cstMobile”:“15555555555”,“idCardType”:“1”,“cardId”:“460101199601012313”}]

主要使用的 SQL 函數(shù)是 json_extract() ,它的作用是:從JSON格式查找所有指定數(shù)據(jù)

1. json 數(shù)組查詢(xún)

模糊查詢(xún) json 數(shù)組格式的字段中某個(gè)字段:
使用方式:
SELECT * FROM 表名 WHERE json_extract(字段名,"$[*].json中key") like '%需要搜索的值%';
實(shí)例:
SELECT * FROM table WHERE json_extract(sign_customer_info_ext,"$[*].cstName") like '%h%';
精準(zhǔn)查詢(xún)(注意:精準(zhǔn)查詢(xún)必須寫(xiě)明所查詢(xún)字段所屬數(shù)組那個(gè)下標(biāo),比如查排在一個(gè)就是 [0],第二個(gè)就是 [1])
SELECT id,sign_customer_info_ext FROM table WHERE json_extract(sign_customer_info_ext,"$[0].cstName") = 'ghhj中文1355';

2.單個(gè) json 查詢(xún)

前端和mysql數(shù)據(jù)庫(kù)中 單個(gè) json 參數(shù):

{
	"cstName": "馬云",
	"cstMobile": "17879767646",
	"idCardType": "1",
	"cardId": "E4813980"
}
模糊查詢(xún)單個(gè) json 查詢(xún):
使用方式:
SELECT id,sign_customer_info_ext FROM 表名 WHERE json_extract(字段名,"$.json中key") like '%馬云%';
實(shí)例:
SELECT id,sign_customer_info_ext FROM table WHERE json_extract(sign_customer_info_ext,"$.cstName") like '%馬云%';

總結(jié)

到此這篇關(guān)于MySQL中查詢(xún)json格式的文章就介紹到這了,更多相關(guān)MySQL查詢(xún)json格式字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql查詢(xún)字段類(lèi)型為json時(shí)的兩種查詢(xún)方式
  • mysql5.6及以下版本如何查詢(xún)數(shù)據(jù)庫(kù)里的json
  • MySQL全文索引、聯(lián)合索引、like查詢(xún)、json查詢(xún)速度哪個(gè)快
  • mysql json格式數(shù)據(jù)查詢(xún)操作
  • Mysql 查詢(xún)JSON結(jié)果的相關(guān)函數(shù)匯總

標(biāo)簽:荊州 錦州 滄州 吉林 甘南 資陽(yáng) 隨州 黑河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL中查詢(xún)json格式的字段實(shí)例詳解》,本文關(guān)鍵詞  MySQL,中,查詢(xún),json,格式,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL中查詢(xún)json格式的字段實(shí)例詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于MySQL中查詢(xún)json格式的字段實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    许昌市| 年辖:市辖区| 台东县| 新蔡县| 丰台区| 伽师县| 唐海县| 嘉黎县| 宜兰县| 彭州市| 中山市| 洪洞县| 屯门区| 天柱县| 肃宁县| 天全县| 恭城| 丽水市| 施甸县| 陵水| 鄂伦春自治旗| 丘北县| 抚宁县| 鸡泽县| 巴马| 浪卡子县| 和政县| 固原市| 九龙坡区| 永寿县| 宁强县| 惠水县| 锡林郭勒盟| 长治县| 定陶县| 浦东新区| 凤冈县| 绥中县| 庆元县| 阳东县| 达日县|