최종 수정: 에
JSON_KEYS
설명
JSON 객체의 모든 키를 배열 형태로 반환합니다. 기본적으로 루트 객체의 키를 반환하지만, 매개변수를 통해 특정 경로에 있는 객체의 키를 반환하도록 지정할 수도 있습니다.
구문
JSON_KEYS(<json_object>[, <path>])
매개변수
필수 매개변수
<json_object>JSON 타입으로, 키를 추출할 JSON 객체입니다.
선택적 매개변수
<path>String 타입으로, 확인할 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 |
+----------------------------------------------+