Някои примери за това как да направите заявка за поле за тип данни 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;
С mysql 5.7.9+
Можете също така просто да направите това (пряк път за JSON_EXTRACT):
SELECT * FROM users WHERE meta_data->"$.first_name" = 'bob'
Може да забележите, че резултатите от вашите json данни са "цитирани". Можете да използвате JSON_UNQUOTE или можете да използвате това, което е пряк път към JSON_EXTRACT &JSON_UNQUOTE:
SELECT meta_data->>"$.first_name" FROM users WHERE meta_data->>"$.first_name" IS NOT NULL
И за да изберете данни от подобектите:
SELECT meta_data->>"$.address.tel" FROM users WHERE meta_data->>"$.address.street" = "123 Main St"
документи:https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html