mysql欄位的資料類型支援json格式,可以直接儲存json數組和json物件。
1、以普通字串形式插入,需要遵循json 格式
2、用內建函數(JSON_OBJECT和JSON_ARRAY )建立JSON資料再插入
1、column -> 'path' 和JSON_EXTRACT(column, 'path')形式存取指定欄位的具體數據。 (*注意path外面都要用單引號包起來)
其中column 表示要查詢的資料欄位列名;
path 為JSON 資料的存取路徑,path格式為$.path 或$[ idx]。
$.path 用於JSON物件類型資料;
$[idx] 用於JSON數組類型資料;
$ 代表整個JSON 資料的root 節點;
path 為存取字段key ,如果欄位名稱包含空格,則需要用雙引號包住,如$."nick name";(*注意中文欄位名稱也需要雙引號包住)
[idx] 是數組的索引。
2、->
和JSON_EXTRACT查詢到的字段字串類型還會有雙引號,還需要做一層處理,可以使用 ->>和JSON_UNQUOTE
去除,且轉義符也會去除。
JSON_UNQUOTE(JSON_EXTRACT(column, path)) 等價於column->>path
3、多層查詢的方式有兩種:
① column -> '$.key.childKey' path點號連接子集欄位的方式存取
② JSON_EXTRACT(JSON_EXTRACT(column, path), path) JSON_EXTRACT巢狀的方式
③column ->'$[*].key' 可以查詢json數組所有key,返回數組
1、精確查詢json類型字段
where column-> '$.key' = value
2、模糊查詢JsonArray類型欄位
where column->'$[*].key' like '%value %'
3、精確查詢JsonArray型別欄位
where JSON_CONTAINS(column,JSON_OBJECT('key', "value"))
4、多層關係,模糊查詢所有的
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] ...) 插入新字段,不會改變已經存在的
3、刪除字段
#JSON_REMOVE(column, path[, path] ...) 刪除欄位
以上是mysql中json怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!