sql >> Databáze >  >> RDS >> Mysql

MySQL vyberte, kde má vlastnost pole JSON hodnotu

Některé příklady, jak dotazovat pole datového typu 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;

S mysql 5.7.9 +

Můžete také udělat toto (zkratka pro JSON_EXTRACT):

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

Můžete si všimnout, že vaše výsledky dat json jsou „uvozovky“. Můžete použít JSON_UNQUOTE nebo můžete použít toto, což je zkratka JSON_EXTRACT &JSON_UNQUOTE:

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

A pro výběr dat z dílčích objektů:

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

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



  1. Jak používat aliasy v matematických operátorech v SQL?

  2. mysqli připravený příkaz num_rows vrátí 0, zatímco dotaz vrátí větší než 0

  3. implodování seznamu pro použití v klauzuli python MySQLDB IN

  4. Mysql:Swap data pro různé řádky