MySQL作為一種常用的關系型數據庫管理系統,提供了對JSON格式支持的功能,為開發者們提供了更加靈活的存儲方式。MySQL使用“JSON”列數據類型來存儲JSON格式的數據。使用JSON列可以更加方便地實現復雜的數據結構,如下例:
CREATE TABLE test ( id int(11) NOT NULL, info json DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
列類型為“JSON”的列可以存儲JSON格式的任何數據,無論是數字、對象、字符串等等。對于JSON格式的數據,您可以執行基于簡單和復雜操作,例如:
SELECT info->'$.name' AS name FROM test WHERE id = 1; SELECT info->'$.name' AS name, info->'$.age' AS age, JSON_extract(info, '$.hometown.city') AS city FROM test WHERE id = 1;
您可以在“SELECT”語句中使用“->”或“JSON_extract”函數,來對JSON格式的數據進行篩選和提取。如果需要在MySQL中更新或插入JSON格式的數據,可以使用MySQL的JSON函數,如下例所示:
INSERT INTO test (id, info) VALUES ( 1, JSON_object( 'name', 'Alice', 'age', 20, 'hometown', JSON_object( 'province', 'Zhejiang', 'city', 'Hangzhou' ) ) ); UPDATE test SET info = JSON_set(info, '$.hometown.city', 'Shanghai') WHERE id = 1;
如果您需要對JSON格式的數據進行更加靈活的操作,MySQL也為您提供了更多的JSON函數和運算符。