StoryCode

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