본문으로 건너뛰기
최종 수정: 에

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. 예제 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 |
    +----------------------------------------------+