Một số ví dụ về cách truy vấn trường kiểu dữ liệu json:
SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.first_name") = 'bob';
SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.age") IS NOT NULL;
SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.accepted_policy") = true;
Với mysql 5.7.9 +
Bạn cũng có thể thực hiện việc này (phím tắt cho JSON_EXTRACT):
SELECT * FROM users WHERE meta_data->"$.first_name" = 'bob'
Bạn có thể nhận thấy kết quả dữ liệu json của bạn được "trích dẫn". Bạn có thể sử dụng JSON_UNQUOTE hoặc bạn có thể sử dụng cái này, là lối tắt của JSON_EXTRACT &JSON_UNQUOTE:
SELECT meta_data->>"$.first_name" FROM users WHERE meta_data->>"$.first_name" IS NOT NULL
Và để chọn dữ liệu từ bên trong các đối tượng phụ:
SELECT meta_data->>"$.address.tel" FROM users WHERE meta_data->>"$.address.street" = "123 Main St"
tài liệu: https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html