メインコンテンツまでスキップ
バージョン: 4.x

JSON_KEYS

説明

JSONオブジェクトのトップレベル値からキーを返すために使用されます。これらのキーは配列として返されるか、pathパラメータが指定されている場合は、選択されたパスのトップレベルキーが返されます。この関数への引数としてJSONドキュメントを提供する必要があります。また、JSONドキュメント内で「トップレベル」パスがどこから始まるかを指定するために、2番目のパラメータを(オプションで)提供することもできます。 json_docはJSONドキュメントであり、pathはJSONドキュメント内で「トップレベル」パスがどこから始まるかを決定するために使用されるオプションのパラメータです。

構文

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

エイリアス

  • JSONB_KEYS

必須パラメータ

パラメータ説明
<str>キーを抽出するJSON文字列が必要です。

オプションパラメータ

パラメータ説明
<path>チェック対象のJSONサブドキュメントを指定するオプションのJSONパスです。提供されない場合、デフォルトはルートドキュメントです。

戻り値

  • JSONドキュメントのキー名のリスト(配列)を返します。
  • <str>が有効なJSONオブジェクトでない場合、NULLを返します。
  • JSONオブジェクトにキーがない場合、空の配列が返されます。

使用上の注意事項

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

SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');
+-----------------------------------------------------+
| json_keys(cast('{"a": 1, "b": {"c": 30}}' as JSON)) |
+-----------------------------------------------------+
| ["a", "b"] |
+-----------------------------------------------------+
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------------------+
| json_keys(cast('{"a": 1, "b": {"c": 30}}' as JSON), '$.b') |
+------------------------------------------------------------+
| ["c"] |
+------------------------------------------------------------+
SELECT JSON_KEYS('{}');
+-------------------------------+
| json_keys(cast('{}' as JSON)) |
+-------------------------------+
| [] |
+-------------------------------+
SELECT JSON_KEYS('[1,2]');
+----------------------------------+
| json_keys(cast('[1,2]' as JSON)) |
+----------------------------------+
| NULL |
+----------------------------------+
 SELECT JSON_KEYS('[]');
+-------------------------------+
| json_keys(cast('[]' as JSON)) |
+-------------------------------+
| NULL |
+-------------------------------+