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

JSONに空の配列が含まれているMySQL

    これを行うには、MySQL5.7.24でテストする2つの方法があります。

    mysql 5.7.24> select config from mytable 
      where json_contains(config, cast('[]' as json), '$.tier');
    +--------------+
    | config       |
    +--------------+
    | {"tier": []} |
    +--------------+
    
    mysql 5.7.24> select config from mytable 
      where json_contains_path(config, 'one', '$.tier');
    +--------------+
    | config       |
    +--------------+
    | {"tier": []} |
    +--------------+
    

    空の配列を厳密にチェックするのに役立つ別の解決策を見つけました:

    まず、2つの行があり、1つには空でない配列があることを確認してください。

    mysql 5.7.24> select config from mytable 
      where json_contains(config, json_array(), '$.tier');
    +----------------------------------------+
    | config                                 |
    +----------------------------------------+
    | {"tier": []}                           |
    | {"tier": [{"name": "BK", "value": 8}]} |
    +----------------------------------------+
    2 rows in set (0.00 sec)
    

    ここで、配列が空であることを確認する方法として、配列の長さが0であることを確認します。

    mysql 5.7.24> select config from mytable 
      where json_contains(config, json_array(), '$.tier') 
      and json_length(config, '$.tier') = 0; 
    +--------------+
    | config       |
    +--------------+
    | {"tier": []} |
    +--------------+
    1 row in set (0.00 sec)
    


    1. 関数によって引き起こされたOracle11のテーブルの変更

    2. Oracle11g-複数の行間の時間差を計算するSQL

    3. IRIWorkbenchでの新しいテーブルの作成

    4. d2rqを使用してデータベース接続の問題が発生しました