최종 수정: 에
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
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 |
+-----------------------------------+ - 스칼라 타입의 길이
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 |
+----------------------------+ - 경로 지정
SELECT json_length('{"x": 1, "y": [1, 2]}', '$.y');+---------------------------------------------+
| json_length('{"x": 1, "y": [1, 2]}', '$.y') |
+---------------------------------------------+
| 2 |
+---------------------------------------------+ - 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 |
+--------------------------+