Alcuni esempi di come eseguire query su un campo del tipo di dati 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;
Con MySQL 5.7.9+
Puoi anche farlo (scorciatoia per JSON_EXTRACT):
SELECT * FROM users WHERE meta_data->"$.first_name" = 'bob'
Potresti notare che i risultati dei tuoi dati json sono "quotati". Potresti usare JSON_UNQUOTE, oppure potresti usare questo, che è una scorciatoia di JSON_EXTRACT e JSON_UNQUOTE:
SELECT meta_data->>"$.first_name" FROM users WHERE meta_data->>"$.first_name" IS NOT NULL
E per selezionare i dati dagli oggetti secondari:
SELECT meta_data->>"$.address.tel" FROM users WHERE meta_data->>"$.address.street" = "123 Main St"
documenti:https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html