に最終更新
JSON_KEYS
説明
JSON オブジェクトのキーを配列として返します。既定ではルートオブジェクトのキーを返し、パスを指定するとその位置のオブジェクトのキーを返します。
構文
JSON_KEYS(<json_object>[, <path>])
パラメータ
必須パラメータ
<json_object>JSON 型。キーを抽出する JSON オブジェクト。
任意パラメータ
<path>文字列型。調べる JSON サブドキュメントを指定する任意の JSON パス。省略した場合はルート文書が対象です。
戻り値
- Array
JSON オブジェクトのすべてのキーを要素とする文字列の配列を返します。
注意事項
<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 |
+----------------------------------------------+