mysql中json的使用方式詳解
mysql字段的數(shù)據(jù)類(lèi)型支持json格式,可以直接存儲(chǔ)json數(shù)組和json對(duì)象。
一、插入json數(shù)據(jù)的方式有兩種
1、以普通字符串形式插入,需要遵循 json 格式
2、用 內(nèi)置函數(shù)(JSON_OBJECT和JSON_ARRAY)創(chuàng)建JSON數(shù)據(jù)再插入
二、查詢(xún) JSON 中字段的數(shù)據(jù)
1、column -> 'path' 和 JSON_EXTRACT(column, 'path')形式訪(fǎng)問(wèn)指定字段的具體數(shù)據(jù)。(*注意path外面都要用單引號(hào)包起來(lái))
其中 column 表示要查詢(xún)的數(shù)據(jù)字段列名;
path 為 JSON 數(shù)據(jù)的訪(fǎng)問(wèn)路徑,path格式為 $.path 或 $[idx]。
$.path 用于 JSON對(duì)象類(lèi)型數(shù)據(jù);
$[idx] 用于 JSON數(shù)組類(lèi)型數(shù)據(jù);
$ 代表整個(gè) JSON 數(shù)據(jù)的 root 節(jié)點(diǎn);
path 為訪(fǎng)問(wèn)字段 key,如果字段名包含空格,則需要用雙引號(hào)包住,如 $."nick name";(*注意中文字段名也需要雙引號(hào)包住)
[idx] 是數(shù)組的索引。
2、->
和JSON_EXTRACT查詢(xún)到的字段字符串類(lèi)型還會(huì)有個(gè)雙引號(hào),還需要做一層處理,可以使用 ->>和JSON_UNQUOTE
去除,且轉(zhuǎn)義符也會(huì)去除。
JSON_UNQUOTE(JSON_EXTRACT(column, path)) 等價(jià)于 column->>path
3、多級(jí)查詢(xún)的方式有兩種:
① column -> '$.key.childKey' path點(diǎn)號(hào)連接子集字段的方式訪(fǎng)問(wèn)
② JSON_EXTRACT(JSON_EXTRACT(column, path), path) JSON_EXTRACT嵌套的方式
③column->'$[*].key' 可以查詢(xún)json數(shù)組所有key,返回?cái)?shù)組
三、JSON字段的條件搜索
1、精確查詢(xún)json類(lèi)型字段
where column-> '$.key' = value
2、模糊查詢(xún)JsonArray類(lèi)型字段
where column->'$[*].key' like '%value%'
3、精確查詢(xún)JsonArray類(lèi)型字段
where JSON_CONTAINS(column,JSON_OBJECT('key', "value"))
4、多層級(jí)關(guān)系,模糊查詢(xún)所有的
where column->'$**.key' like '%value%'
四、JSON字段的更新操作 1、更新字段
JSON_SET(column, path, val[, path, val] ...) 更新或插入
JSON_REPLACE(column, path, val[, path, val] ...) 只更新
2、新增字段
JSON_INSERT(column, path, val[, path, val] ...) 插入新字段,不會(huì)改變已經(jīng)存在的
3、刪除字段
JSON_REMOVE(column, path[, path] ...) 刪除字段
到此這篇關(guān)于mysql中json的使用的文章就介紹到這了,更多相關(guān)mysql中json使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL REVOKE實(shí)現(xiàn)刪除用戶(hù)權(quán)限
在 MySQL 中,可以使用 REVOKE 語(yǔ)句刪除某個(gè)用戶(hù)的某些權(quán)限,本文就詳細(xì)的來(lái)介紹一下REVOKE 的具體使用方法,感興趣的可以了解一下2021-06-06MySQL報(bào)錯(cuò):The?server?quit?without?updating?PID?file的解決思路
最近在學(xué)習(xí)mysql二進(jìn)制的時(shí)候遇到了個(gè)報(bào)錯(cuò),解決分享給大家,這篇文章主要給大家介紹了關(guān)于MySQL報(bào)錯(cuò):The?server?quit?without?updating?PID?file的解決思路與方法,需要的朋友可以參考下2023-02-02如何使用MySQL查詢(xún)一年中每月的記錄數(shù)
這篇文章主要給大家介紹了關(guān)于如何使用MySQL查詢(xún)一年中每月的記錄數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09MySQL5.73?root用戶(hù)密碼修改方法及ERROR?1193、ERROR1819與ERROR1290報(bào)錯(cuò)解決
這篇文章主要給大家介紹了關(guān)于MySQL5.73?root用戶(hù)密碼修改方法及ERROR?1193、ERROR1819與ERROR1290:...?running?with?--skip-...報(bào)錯(cuò)的解決方法,文中通過(guò)圖文將解決的步驟介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02