Loading...
MySQL 9.5 Reference Manual 9.5의 14.17.5 Functions That Return JSON Value Attributes의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 섹션의 함수들은 JSON 값의 속성을 반환합니다.
JSON 문서의 최대 깊이를 반환합니다. 인수가 NULL이면 NULL을 반환합니다. 인수가 유효한 JSON 문서가 아니면 오류가 발생합니다.
빈 배열, 빈 오브젝트, 또는 스칼라 값의 깊이는 1입니다. 깊이 1의 요소만 포함하는 비어 있지 않은 배열이나, 깊이 1의 멤버 값만 포함하는 비어 있지 않은 오브젝트는 깊이 2를 가집니다. 그 외의 경우, JSON 문서는 2보다 큰 깊이를 가집니다.
1mysql> SELECT JSON_DEPTH('{}'), JSON_DEPTH('[]'), JSON_DEPTH('true'); 2+------------------+------------------+--------------------+ 3| JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH('true') | 4+------------------+------------------+--------------------+ 5| 1 | 1 | 1 | 6+------------------+------------------+--------------------+ 7mysql> SELECT JSON_DEPTH('[10, 20]'), JSON_DEPTH('[[], {}]'); 8+------------------------+------------------------+ 9| JSON_DEPTH('[10, 20]') | JSON_DEPTH('[[], {}]') | 10+------------------------+------------------------+ 11| 2 | 2 | 12+------------------------+------------------------+ 13mysql> SELECT JSON_DEPTH('[10, {"a": 20}]'); 14+-------------------------------+ 15| JSON_DEPTH('[10, {"a": 20}]') | 16+-------------------------------+ 17| 3 | 18+-------------------------------+
JSON 문서의 길이를 반환하거나, path 인수가 주어진 경우 문서 내에서 해당 경로로 식별되는 값의 길이를 반환합니다. 어떤 인수든 NULL이면, 또는 path 인수가 문서 내의 값을 식별하지 못하면 NULL을 반환합니다. json_doc 인수가 유효한 JSON 문서가 아니거나 path 인수가 유효한 경로 표현식이 아니면 오류가 발생합니다.
문서의 길이는 다음과 같이 결정됩니다:
스칼라의 길이는 1입니다.
배열의 길이는 배열 요소의 개수입니다.
오브젝트의 길이는 오브젝트 멤버의 개수입니다.
길이에는 중첩된 배열이나 오브젝트의 길이는 포함되지 않습니다.
1mysql> SELECT JSON_LENGTH('[1, 2, {"a": 3}]'); 2+---------------------------------+ 3| JSON_LENGTH('[1, 2, {"a": 3}]') | 4+---------------------------------+ 5| 3 | 6+---------------------------------+ 7mysql> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}'); 8+-----------------------------------------+ 9| JSON_LENGTH('{"a": 1, "b": {"c": 30}}') | 10+-----------------------------------------+ 11| 2 | 12+-----------------------------------------+ 13mysql> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b'); 14+------------------------------------------------+ 15| JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') | 16+------------------------------------------------+ 17| 1 | 18+------------------------------------------------+
JSON 값의 타입을 나타내는 utf8mb4 문자열을 반환합니다. 이는 다음과 같이 오브젝트, 배열 또는 스칼라 타입이 될 수 있습니다:
1mysql> SET @j = '{"a": [10, true]}'; 2mysql> SELECT JSON_TYPE(@j); 3+---------------+ 4| JSON_TYPE(@j) | 5+---------------+ 6| OBJECT | 7+---------------+ 8mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a')); 9+------------------------------------+ 10| JSON_TYPE(JSON_EXTRACT(@j, '$.a')) | 11+------------------------------------+ 12| ARRAY | 13+------------------------------------+ 14mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]')); 15+---------------------------------------+ 16| JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]')) | 17+---------------------------------------+ 18| INTEGER | 19+---------------------------------------+ 20mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]')); 21+---------------------------------------+ 22| JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]')) | 23+---------------------------------------+ 24| BOOLEAN | 25+---------------------------------------+
JSON_TYPE()는 인수가 NULL이면 NULL을 반환합니다:
1mysql> SELECT JSON_TYPE(NULL); 2+-----------------+ 3| JSON_TYPE(NULL) | 4+-----------------+ 5| NULL | 6+-----------------+
인수가 유효한 JSON 값이 아니면 오류가 발생합니다:
1mysql> SELECT JSON_TYPE(1); 2ERROR 3146 (22032): Invalid data type for JSON data in argument 1 3to function json_type; a JSON string or JSON type is required.
NULL이 아니고 오류도 아닌 결과에 대해, 다음 목록은 JSON_TYPE()가 반환할 수 있는 값들을 설명합니다:
순수 JSON 타입:
OBJECT: JSON 오브젝트
ARRAY: JSON 배열
BOOLEAN: JSON true 및 false 리터럴
NULL: JSON null 리터럴
숫자 타입:
시간 타입:
문자열 타입:
바이너리 타입:
기타 모든 타입:
OPAQUE (raw bits)값이 유효한 JSON인지 여부를 나타내기 위해 0 또는 1을 반환합니다. 인수가 NULL이면 NULL을 반환합니다.
1mysql> SELECT JSON_VALID('{"a": 1}'); 2+------------------------+ 3| JSON_VALID('{"a": 1}') | 4+------------------------+ 5| 1 | 6+------------------------+ 7mysql> SELECT JSON_VALID('hello'), JSON_VALID('"hello"'); 8+---------------------+-----------------------+ 9| JSON_VALID('hello') | JSON_VALID('"hello"') | 10+---------------------+-----------------------+ 11| 0 | 1 | 12+---------------------+-----------------------+
14.17.4 Functions That Modify JSON Values
14.17.6 JSON Table Functions