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

JSON_KEYS()–MySQLのJSONオブジェクトからキーを返します

    MySQLでは、JSON_KEYS() 関数は、JSONオブジェクトの最上位の値からキーを返します。キーはJSON配列として返されるか、pathの場合は返されます 引数が与えられ、選択されたパスの最上位のキー。

    関数の引数としてJSONドキュメントを提供します。

    (オプションで)2番目の引数を指定して、JSONドキュメント内の「トップレベル」パスの開始位置を指定することもできます。

    構文

    構文は次のようになります:

    JSON_KEYS(json_doc[, path])
    

    json_docの場所 JSONドキュメントとpath JSONドキュメント内の「トップレベル」パスがどこから始まるかを決定するためのオプションの引数です。

    選択したオブジェクトが空の場合、結果の配列は空になります。トップレベルの値にネストされたサブオブジェクトがある場合、戻り値にはそれらのサブオブジェクトからのキーは含まれません。

    例1-基本的な使用法

    実例を示します。

    SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';
    

    結果:

    +-----------------+
    | Result          |
    +-----------------+
    | ["a", "b", "c"] |
    +-----------------+
    

    別の例を次に示します。

    SELECT 
      JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';
    

    結果:

    +-----------------+
    | Result          |
    +-----------------+
    | ["Age", "Name"] |
    +-----------------+
    

    例2–パスを指定する

    パスを指定する例を次に示します。これにより、(JSONドキュメント全体の最上位オブジェクトだけに限定されるのではなく)ネストされたオブジェクトからキーを取得できます。

    SELECT 
      JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';
    

    結果:

    +-----------------+
    | Result          |
    +-----------------+
    | ["d", "e", "f"] |
    +-----------------+

    例3–存在しないパス

    存在しないパスを指定すると、NULL値が返されます。

    SELECT 
      JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';
    

    結果:

    +--------+
    | Result |
    +--------+
    | NULL   |
    +--------+

    引数のいずれかがNULLの場合も、NULL値を取得します または、最初の引数がJSONオブジェクトでない場合。

    例4–アレイ

    配列はオブジェクトではなく、キーと値のペアは含まれていません。したがって、配列からキーを返そうとすると、NULL値が返されます。

    SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';
    

    結果:

    +--------+
    | Result |
    +--------+
    | NULL   |
    +--------+

    ただし、配列の要素のいずれかにオブジェクトが含まれている場合でも、pathを使用できます。 そのオブジェクトからキーを取得するための引数。

    SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';
    

    結果:

    +------------+
    | Result     |
    +------------+
    | ["a", "b"] |
    +------------+
    

    例5–空のオブジェクト

    選択したオブジェクトが空の場合、空の配列が取得されます。

    SELECT JSON_KEYS('{}') AS 'Result';
    

    結果:

    +--------+
    | Result |
    +--------+
    | []     |
    +--------+
    

    1. インデックスを作成するときにINCLUDE句を使用するのはなぜですか?

    2. MySQL8.0用のPerconaServerを使用して暗号化されたデータベースをバックアップする方法

    3. OracleDataSourceとOracleUCPPoolDataSource

    4. Oracle用のSQL挿入を生成しています