MySQL從5.7版本開始支持JSON數據類型。JSON是一種輕量級的數據交換格式,因此它在Web應用程序中非常常見。在MySQL中存儲JSON數據類型的字段需要使用JSON數據類型,同時也需要使用一些特定的函數操作。
CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, data JSON );
以上是定義具有JSON數據類型的表的示例。JSON數據類型存儲到該表中時,可以使用INSERT語句來添加:
INSERT INTO my_table (data) VALUES ('{"name": "John Doe", "age": 30}'), ('{"name": "Jane Doe", "age": 25}');
JSON_INSERT和JSON_REPLACE是兩個很有用的函數,可以在表格中處理JSON數據類型的字段。以下是它們的用法示例:
UPDATE my_table SET data = JSON_SET(data, '$.name', 'Mike') WHERE id = 1; --結果 {"name": "Mike", "age": 30}
UPDATE my_table SET data = JSON_REPLACE(data, '$.age', 35) WHERE id = 2; --結果 {"name": "Jane Doe", "age": 35}
從JSON字段中獲取數據的方法有兩種。第一個是使用->或->>運算符的方式:
SELECT data->>'$.name' as name FROM my_table WHERE id = 1; --結果 "Mike"
第二個方法是使用JSON_EXTRACT函數:
SELECT JSON_EXTRACT(data, '$.age') as age FROM my_table WHERE id = 2; --結果 35
MySQL的JSON函數有很多種,完整的函數列表可以參見MySQL的官方文檔。