名稱 | 描述 |
---|---|
-> | 評估路徑后從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