기존 회사에선 Oracle 을 사용하다가, 최근에 이직한 회사에서 MySQL 을 사용하며 새로운 점들을 익히고 있다.
그러던 와중에 JSON Type 의 데이터를 파싱 등의 처리하는 작업을 맡게 되어 진행하게 되었다.
그 중 기록해 두었다가 추후에 계속 활용할 수 있도록 하기 위해 포스팅을 하려고 한다.
-- 자세한 내용은 다음과 같다. --
JSON Type 의 데이터가 [{"id": 1, "item": "apple"}, {"id": 2, "item": "grape"} ... ] 등의 형태로 되어 있다고 가정한다.
이 때 아래와 같이 테이블 형태를 변경하고자 한다.
(As-Is)
fruit_no fruit_items
--------------------------------------------------------------------------------------
1 [{"id": 1, "item": "apple"}, {"id": 2, "item": "grape"} ... ]
(To-Be)
fruit_no id item
--------------------------
1 1 apple
1 2 grape
이를 위해 JSON_TABLE 개념을 사용하였다.
------------------------------------------------------------------------------------------------------------------
SELECT fruits.fruit_no, jt.*
FROM fruits,
JSON_TABLE(fruits.fruit_items, '$[*]' COLUMNS (id INT PATH '$.id', item VARCHAR(100) PATH '$.item')) as jt
------------------------------------------------------------------------------------------------------------------
과 같은 형태로 사용하면 된다.
단, JSON_TABLE 개념은 MySQL 8.0 이상의 버전부터 사용 가능하다고 하니 유의가 필요하다.
(이 사실을 늦게 알아 삽질을 오래했다.)
'IT > SQL' 카테고리의 다른 글
[MySQL] GROUP BY 사용법 (0) | 2024.03.09 |
---|---|
SQLD 내용 정리 4 (0) | 2021.04.11 |
SQLD 내용 정리3 (0) | 2021.04.04 |
SQLD 내용 정리2 (0) | 2021.03.28 |
SQLD 내용 정리1 (0) | 2021.03.21 |