IT/SQL

[MySQL] JSON_TABLE

어린이개발자 2023. 9. 14. 18:50

기존 회사에선 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