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

JSON_LENGTH

설명​

JSON_LENGTH 함수는 주어진 JSON 문서의 길이 또는 요소 수를 반환하는 데 사용됩니다. JSON 문서가 배열이면 배열의 요소 수를 반환하고, 객체이면 객체의 키-값 쌍 수를 반환합니다. JSON 문서가 유효하지 않으면 NULL을 반환합니다.

구문​

JSON_LENGTH(<json_object> [, <path>])

매개변수​

필수 매개변수​

  • <json_object> JSON 타입으로, 길이를 반환할 JSON 문서입니다.

선택적 매개변수​

  • <path> 문자열 타입으로, 문서 내 특정 객체의 길이를 반환하는 데 사용됩니다.

참고 사항​

이 함수는 다음 규칙에 따라 JSON 문서의 길이를 계산합니다.

  • 스칼라의 길이는 1입니다. 예를 들어 '1', '"x"', 'true', 'false', 'null'의 길이는 모두 1입니다.
  • 배열의 길이는 배열 요소의 수입니다. 예를 들어 '[1, 2]'의 길이는 2입니다.
  • 객체의 길이는 객체 멤버의 수입니다. 예를 들어 '{"x": 1, "y": [1, 2, 3]}'의 길이는 2입니다.

반환 값​

  • JSON 배열의 경우 배열의 요소 수를 반환합니다.
  • JSON 객체의 경우 객체의 키-값 쌍 수를 반환합니다.
  • JSON 스칼라 타입(문자열, 숫자, 불리언, null 등)의 경우 1을 반환합니다.
  • 유효하지 않은 JSON 문자열의 경우 NULL을 반환합니다.

예제​

  1. 예제 1
    SELECT json_length('{"k1":"v31","k2":300}');
    +--------------------------------------+
    | json_length('{"k1":"v31","k2":300}') |
    +--------------------------------------+
    | 2 |
    +--------------------------------------+
    SELECT json_length('[1, 2, 3, 4, 5, 6]');
    +-----------------------------------+
    | json_length('[1, 2, 3, 4, 5, 6]') |
    +-----------------------------------+
    | 6 |
    +-----------------------------------+
  2. 스칼라 타입의 길이
    SELECT json_length('"abc"');
    +----------------------+
    | json_length('"abc"') |
    +----------------------+
    | 1 |
    +----------------------+
    SELECT json_length('123');
    +--------------------+
    | json_length('123') |
    +--------------------+
    | 1 |
    +--------------------+
    SELECT json_length('{"k": null}');
    +----------------------------+
    | json_length('{"k": null}') |
    +----------------------------+
    | 1 |
    +----------------------------+
  3. 경로 지정
    SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');
    +---------------------------------------------+
    | json_length('{"x": 1, "y": [1, 2]}', '$.y') |
    +---------------------------------------------+
    | 2 |
    +---------------------------------------------+
  4. NULL 매개변수
    SELECT json_length('{"x": 1, "y": [1, 2]}', NULL);
    +--------------------------------------------+
    | json_length('{"x": 1, "y": [1, 2]}', NULL) |
    +--------------------------------------------+
    | NULL |
    +--------------------------------------------+
    SELECT json_length(NULL, '$.y');
    +--------------------------+
    | json_length(NULL, '$.y') |
    +--------------------------+
    | NULL |
    +--------------------------+