sql >> データベース >  >> RDS >> Mysql

MySQLはJSONフィールドプロパティが値を持つ場所を選択します

    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



    1. MySQLはIF()関数を短絡しますか?

    2. SQLServerの単一データベースのデフォルトの日時形式を変更する

    3. マルチAZオーロラRDSインスタンスを作成できません

    4. OracleのBLOB列への画像データのロード