Kiểu dữ liệu JSON (MySQL 5.7+) cho phép lưu trữ mảng hoặc đối tượng phức tạp trong một cột duy nhất, thay vì thiết kế nhiều bảng liên quan.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1828 (
EmployeeId INT,
EmployeeRecords JSON
);
Chèn mảng đối tượng JSON:
mysql> INSERT INTO DemoTable1828 VALUES(1, '[{"EmployeeName":"Chris","EmployeeAge":29},{"EmployeeName":"David","EmployeeAge":27}]');
mysql> INSERT INTO DemoTable1828 VALUES(2, '[{"EmployeeName":"John","EmployeeAge":36},{"EmployeeName":"Mike","EmployeeAge":32}]');
Truy vấn:
mysql> SELECT * FROM DemoTable1828;
Kết quả (MySQL tự động sắp xếp khóa theo thứ tự bảng chữ cái):
+------------+------------------------------------------------------------------+
| EmployeeId | EmployeeRecords |
+------------+------------------------------------------------------------------+
| 1 | [{"EmployeeAge": 29, "EmployeeName": "Chris"}, {"EmployeeAge": 27, "EmployeeName": "David"}] |
| 2 | [{"EmployeeAge": 32, "EmployeeName": "Mike"}, {"EmployeeAge": 36, "EmployeeName": "John"}] |
+------------+------------------------------------------------------------------+
Ưu điểm: Truy vấn linh hoạt với JSON_EXTRACT, JSON_TABLE (MySQL 8), không cần schema cố định.