sql >> Database >  >> RDS >> Mysql

MySQL selecteren waar JSON-veldeigenschap waarde heeft

Enkele voorbeelden van het opvragen van een json-gegevenstypeveld:

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;

Met mysql 5.7.9 +

Je kunt dit ook gewoon doen (snelkoppeling voor JSON_EXTRACT):

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

Mogelijk merkt u dat uw json-gegevensresultaten "geciteerd" zijn. Je zou JSON_UNQUOTE kunnen gebruiken, of je zou dit kunnen gebruiken, wat een snelkoppeling is van JSON_EXTRACT &JSON_UNQUOTE:

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

En om gegevens uit subobjecten te selecteren:

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

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



  1. WHERE-voorwaarde in MySQL met 16 verschillende queryvoorbeelden

  2. SQLite kan databasebestand (code 14) niet openen bij frequente SELECT-query

  3. Ongewenst teken uit kolom verwijderen

  4. Een database dupliceren met phpMyAdmin