MySQL 5.7及以上版本支持JSON類型。JSON是JavaScript Object Notation的縮寫,是一種輕量級的數據交換格式。與XML相比,JSON更加簡潔、易于理解。
在MySQL中,可以使用JSON類型來存儲JSON格式的數據。JSON類型可以與其他類型進行混合使用,如VARCHAR、TEXT等。
CREATE TABLE example (
id INT NOT NULL,
data JSON,
PRIMARY KEY (id)
);
可以使用以下函數對JSON類型進行操作:
JSON_OBJECT(key1, value1, [key2, value2, ...])
JSON_ARRAY(value1, [value2, ...])
JSON_OBJECTAGG(key, value)
JSON_ARRAYAGG(value)
JSON_INSERT(json_doc, path, val[, path, val] ...)
JSON_REPLACE(json_doc, path, val[, path, val] ...)
JSON_SET(json_doc, path, val[, path, val] ...)
JSON_REMOVE(json_doc, path[, path] ...)
其中:
- JSON_OBJECT:創建一個JSON對象
- JSON_ARRAY:創建一個JSON數組
- JSON_OBJECTAGG:將行聚合為一個JSON對象
- JSON_ARRAYAGG:將行聚合為一個JSON數組
- JSON_INSERT:向JSON對象中插入一個值
- JSON_REPLACE:替換JSON對象中的一個值
- JSON_SET:設置JSON對象中的一個值
- JSON_REMOVE:從JSON對象中刪除一個值
SELECT JSON_EXTRACT('{"a":1, "b":2}', '$.a');
-- 1
SELECT JSON_EXTRACT('{"a":1, "b":2}', '$.b');
-- 2
SELECT JSON_EXTRACT('[[1,2],[3,4]]', '$[0][0]');
-- 1
可以使用JSON_EXTRACT函數從JSON類型中提取某個值。
SELECT JSON_SEARCH('[1,2,{"a":4}]', 'one', 4, NULL, '$**.a');
-- "$[2].a"
可以使用JSON_SEARCH函數找到JSON類型中包含某個值的路徑。
使用JSON類型可以輕松地將結構化數據存儲在MySQL中,并且可以在MySQL中對其進行處理,這對于web應用程序是非常有用的。