sql >> Database teknologi >  >> RDS >> Mysql

MySQL vælg, hvor JSON-feltegenskaben har værdi

Nogle eksempler på, hvordan man forespørger i et json-datatypefelt:

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;

Med mysql 5.7.9 +

Du kan også bare gøre dette (genvej til JSON_EXTRACT):

SELECT * FROM users WHERE meta_data->"$.first_name" = 'bob'

Du bemærker muligvis, at dine json-dataresultater er "citeret". Du kan bruge JSON_UNQUOTE, eller du kan bruge dette, som er en genvej til JSON_EXTRACT &JSON_UNQUOTE:

SELECT meta_data->>"$.first_name" FROM users WHERE meta_data->>"$.first_name" IS NOT NULL

Og for at vælge data fra underobjekter:

SELECT meta_data->>"$.address.tel" FROM users WHERE meta_data->>"$.address.street" = "123 Main St"

docs:https://dev.mysql.com /doc/refman/5.7/da/json-search-functions.html



  1. Implementer MySQL relationelle databaser på Ubuntu 12.04 (præcis Pangolin)

  2. Sådan filtreres SQL-resultater i en har-mange-gennem-relation

  3. Hvordan kan jeg lave HTTP-anmodninger fra SQL-serveren?

  4. Wildfly og automatisk genoprette forbindelse til databasen