メインコンテンツまでスキップ
に最終更新

JSON_KEYS

説明​

JSON オブジェクトのキーを配列として返します。既定ではルートオブジェクトのキーを返し、パスを指定するとその位置のオブジェクトのキーを返します。

構文​

JSON_KEYS(<json_object>[, <path>])

パラメータ​

必須パラメータ​

パラメータ説明
<json_object>キーを抽出する JSON 型のオブジェクト。必須。

任意パラメータ​

パラメータ説明
<path>対象のサブドキュメントを指定する文字列型の JSON パス。任意。省略時はルート文書。

戻り値​

  • Array を返します。配列の要素は対象オブジェクトのキーです。入力または指定パスが NULL の場合、対象がオブジェクトでない場合、パスが存在しない場合は NULL を返します。

注意事項​

  • <json_object> または <path> が NULL の場合は NULL を返します。
  • 対象が JSON オブジェクトでない場合(JSON 配列など)は NULL を返します。
  • <path> が指すオブジェクトが存在しない場合は NULL を返します。

例​

  1. 使用例 1

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');
    +---------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}') |
    +---------------------------------------+
    | ["a", "b"] |
    +---------------------------------------+
    SELECT JSON_KEYS('{}');
    +-----------------+
    | JSON_KEYS('{}') |
    +-----------------+
    | [] |
    +-----------------+
  2. パスを指定する

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') |
    +----------------------------------------------+
    | ["c"] |
    +----------------------------------------------+
  3. NULL パラメータ

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL);
    +---------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', NULL) |
    +---------------------------------------------+
    | NULL |
    +---------------------------------------------+
    SELECT JSON_KEYS(NULL);
    +-----------------+
    | JSON_KEYS(NULL) |
    +-----------------+
    | NULL |
    +-----------------+
  4. JSON オブジェクトでない場合

    SELECT JSON_KEYS('[1,2]');
    +--------------------+
    | JSON_KEYS('[1,2]') |
    +--------------------+
    | NULL |
    +--------------------+
    SELECT JSON_KEYS('{"k": [1, 2, 3]}', '$.k');
    +--------------------------------------+
    | JSON_KEYS('{"k": [1, 2, 3]}', '$.k') |
    +--------------------------------------+
    | NULL |
    +--------------------------------------+
  5. パスが指すオブジェクトが存在しない場合

    SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c');
    +----------------------------------------------+
    | JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c') |
    +----------------------------------------------+
    | NULL |
    +----------------------------------------------+