sql >> Databasteknik >  >> RDS >> Mysql

MySQL välj var JSON-fältegenskapen har värde

Några exempel på hur man frågar ett json-datatypfält:

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 också bara göra detta (genväg till JSON_EXTRACT):

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

Du kanske märker att dina json-dataresultat är "citerade". Du kan använda JSON_UNQUOTE, eller så kan du använda detta, som är en genväg till JSON_EXTRACT &JSON_UNQUOTE:

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

Och för att välja data från underobjekt:

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. 3 metoder för att bygga om alla index för alla tabeller med T-SQL i SQL Server Database

  2. NodeJS svarade MySQL-tidszonen är annorlunda när jag hämtar direkt från MySQL

  3. CI - visa databasfel eller misslyckas

  4. Frågeoptimeringstekniker i SQL Server:5 bästa metoder för att öka sökresultaten