Tôi nghĩ rằng bạn có thể đạt được điều này chỉ trong Mysql 5.7.
Trong phiên bản 5.7, bạn có thể làm điều gì đó như:
SELECT JSON_EXTRACT(json_field, '$.name');
và nó sẽ chỉ trích xuất khóa tên từ đối tượng json.
Tìm kiếm tất cả các mục bằng thẻ 'JavaScript':
SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');
Tìm tất cả các mục có thẻ bắt đầu từ 'Java':
SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;
sử dụng 'một' để tìm kết quả phù hợp đầu tiên hoặc 'tất cả' để tìm tất cả các kết quả phù hợp
Bạn có thể trích xuất biệt hiệu Twitter bằng đường dẫn JSON:
SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;
Bạn cũng có thể tham chiếu đường dẫn JSON trong mệnh đề WHERE để chỉ trả lại người dùng có tài khoản Twitter:
SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;
Bạn có thể làm nhiều việc hơn như:
-
Tạo giá trị JSON
-
Chuẩn hóa, Hợp nhất và Tự động hóa các Giá trị JSON
-
Tìm kiếm và sửa đổi giá trị JSON
-
So sánh và sắp xếp thứ tự các giá trị JSON
-
Tổng hợp các giá trị JSON
để biết thêm thông tin, vui lòng tham khảo: https://dev.mysql. com / doc / refman / 5.7 / en / json.html