JSON 처리
Database 관리/Maria DB참조 1 ) https://mariadb.com/kb/en/library/json-functions/
참조 2 ) https://mariadb.com/kb/en/library/json_object/
SELECT * FROM TEMP_TBL;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| V |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| [{"TYPE":"HP", "NO":"01012345678", "RETRY":"3"}, {"TYPE":"TELEGRAM", "NO":"42543524", "RETRY":"3"},{"TYPE":"KAKAO", "NO":"01012345678","RETRY":"3"}] |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
SELECT JSON_EXTRACT(V, '$[0].NO'),
JSON_UNQUOTE(JSON_EXTRACT(V, '$[0].NO')),
JSON_VALUE (V, '$[0].NO')
FROM TEMP_TBL A;
+----------------------------+------------------------------------------+----------------------------+
| JSON_EXTRACT(V, '$[0].NO') | JSON_UNQUOTE(JSON_EXTRACT(V, '$[0].NO')) | JSON_VALUE (V, '$[0].NO') |
+----------------------------+------------------------------------------+----------------------------+
| "01012345678" | 01012345678 | 01012345678 |
+----------------------------+------------------------------------------+----------------------------+
SELECT JSON_EXTRACT(V, CONCAT('$[', B.NOUID - 1, '].NO'))
FROM TEMP_TBL A STRAIGHT_JOIN
CLONE_TBL B
WHERE B.NOUID BETWEEN 1 AND JSON_LENGTH(A.V)
+----------------------------------------------------+
| JSON_EXTRACT(V, CONCAT('$[', B.NOUID - 1, '].NO')) |
+----------------------------------------------------+
| "01012345678" |
| "42543524" |
| "01012345678" |
+----------------------------------------------------+
명령설명)
JSON_QUERY와 JSON_VALUE의 차이점
JSON_QUERY와 JSON_VALUE의 예제와 비교합니다.
JSON_ARRAY
나열된 값이 포함 된 JSON 배열을 반환합니다.
JSON_ARRAY_APPEND
JSON 문서 내에서 주어진 배열의 끝에 값을 추가합니다.
JSON_ARRAY_INSERT
JSON 문서에 값을 삽입합니다.
JSON_COMPACT
불필요한 모든 공간을 제거하여 json 문서가 가능한 한 짧습니다.
JSON_CONTAINS
지정된 JSON 문서 또는 문서 내의 지정된 경로에서 값을 찾을 수 있는지 여부
JSON_CONTAINS_PATH
지정된 JSON 문서에 지정된 경로의 데이터가 있는지 여부를 나타냅니다.
JSON_DEPTH
JSON 문서의 최대 깊이.
JSON_DETAILED
중첩 구조를 강조하는 가장 이해하기 쉬운 방식으로 JSON을 나타냅니다.
JSON_EXISTS
지정된 데이터에 지정된 JSON 값이 있는지 확인합니다.
JSON_EXTRACT
JSON 문서에서 데이터를 추출합니다.
JSON_INSERT
JSON 문서에 데이터를 삽입합니다.
JSON_KEYS
JSON 객체의 최상위 값에서 키를 반환하거나 경로에서 최상위 키를 반환합니다.
MariaDB [test]> select id, json_keys(data) from json_test;
+------+-----------------------------------+
| id | json_keys(data) |
+------+-----------------------------------+
| 1 | ["Name", "Sex", "Phone"] |
| 2 | ["Name", "Sex", "Phone", "Birth"] |
| 3 | ["Name", "Sex", "Phone", "Birth"] |
| 4 | NULL |
| 5 | NULL |
+------+-----------------------------------+
5 rows in set (0.000 sec)
JSON_LENGTH
JSON 문서의 길이 또는 문서 내 값의 길이를 반환합니다.
JSON_LOOSE
더 읽기 쉽게 보이도록 JSON 문서에 공백을 추가합니다.
JSON_MERGE
주어진 JSON 문서를 병합합니다.
JSON_MERGE_PATCH
주어진 JSON 문서의 RFC 7396 호환 병합
JSON_MERGE_PRESERVE
JSON_MERGE의 동의어
JSON_OBJECT
주어진 키 / 값 쌍을 포함하는 JSON 객체를 반환합니다.
JSON_QUERY
JSON 문서가 주어지면 경로로 지정된 객체 또는 배열을 반환합니다.
JSON_QUOTE
문자열을 JSON 값으로 인용합니다.
JSON_REMOVE
JSON 문서에서 데이터를 제거합니다.
JSON_REPLACE
JSON 문서에서 기존 값을 바꿉니다.
JSON_SEARCH
JSON 문서 내에서 지정된 문자열의 경로를 반환합니다.
JSON_SET
JSON 문서에 데이터를 업데이트하거나 삽입합니다.
JSON_TYPE
JSON 값의 유형을 반환합니다.
JSON_UNQUOTE
JSON 값을 인용 해제하여 문자열을 반환합니다.
JSON_VALID
값이 유효한 JSON 문서인지 여부
JSON_VALUE
JSON 문서가 주어지면 지정된 스칼라를 반환합니다.
'Database 관리 > Maria DB' 카테고리의 다른 글
UDF 만들기 (0) | 2021.05.06 |
---|---|
Ubuntu 20.04.02, MariaDB 10.5 설치, UDF 설치, System Call Udf (0) | 2021.02.16 |
maria10.zip.windows10 64bit.설치 (0) | 2020.04.23 |
MySQL.무인스톨설치 (0) | 2020.04.23 |
설치 및 설정 (0) | 2018.10.31 |