1. 程式人生 > 實用技巧 >mysql 根據json資料欄位查詢 顯示json欄位內容

mysql 根據json資料欄位查詢 顯示json欄位內容

名稱 描述
-> 評估路徑後從JSON列返回值;等效於JSON_EXTRACT()。
->> (介紹5.7.13)
JSON_APPEND() (已棄用) 將資料附加到JSON文件
JSON_ARRAY() 建立JSON陣列
JSON_ARRAY_APPEND() 將資料附加到JSON文件
JSON_ARRAY_INSERT() 插入JSON陣列
JSON_CONTAINS() JSON文件是否在路徑中包含特定物件
JSON_CONTAINS_PATH() JSON文件是否在路徑中包含任何資料
JSON_DEPTH() JSON文件的最大深度
JSON_EXTRACT() 從JSON文件返回資料
JSON_INSERT() 將資料插入JSON文件
JSON_KEYS() JSON文件中的鍵陣列
JSON_LENGTH() JSON文件中的元素數
JSON_MERGE() (不建議使用5.7.22) 合併JSON文件,保留重複的鍵。JSON_MERGE_PRESERVE()的已棄用同義詞
JSON_MERGE_PATCH() (介紹5.7.22) 合併JSON文件,替換重複鍵的值
JSON_MERGE_PRESERVE() (介紹5.7.22) 合併JSON文件,保留重複的鍵
JSON_OBJECT() 建立JSON物件
JSON_PRETTY() (介紹5.7.22) 以易於閱讀的格式列印JSON文件
JSON_QUOTE() 引用JSON文件
JSON_REMOVE() 從JSON文件中刪除資料
JSON_REPLACE() 替換JSON文件中的值
JSON_SEARCH() JSON文件中值的路徑
JSON_SET() 將資料插入JSON文件
JSON_STORAGE_SIZE() (介紹5.7.22) 用於儲存JSON文件的二進位制表示形式的空間
JSON_TYPE() JSON值型別
JSON_UNQUOTE() 取消引用JSON值
JSON_VALID() JSON值是否有效

MySQL 5.7.22和更高版本支援兩個聚合JSON函式 JSON_ARRAYAGG()和 JSON_OBJECTAGG()。

用到的示例

# 插入資料
insert into testTable (jsonField) values ('{"one":1,"two":{"id":2}}');

# 查詢資料
//一維
select id, json_extract(jsonField,'$.one') as one from testTable where json_extract(jsonField,'$.one') = 1
//二維
select id, json_extract(jsonField,'$.two.id') as two from testTable where json_extract(jsonField,'$.two.id') = 2

更多參考
MySQL 5.7參考手冊:https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html