に最終更新
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
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}');+---------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}') |
+---------------------------------------+
| ["a", "b"] |
+---------------------------------------+SELECT JSON_KEYS('{}');+-----------------+
| JSON_KEYS('{}') |
+-----------------+
| [] |
+-----------------+ -
パスを指定する
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b');+----------------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b') |
+----------------------------------------------+
| ["c"] |
+----------------------------------------------+ -
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 |
+-----------------+ -
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 |
+--------------------------------------+ -
パスが指すオブジェクトが存在しない場合
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c');+----------------------------------------------+
| JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.c') |
+----------------------------------------------+
| NULL |
+----------------------------------------------+