MySQL Json Table 사용법 JSON_TABLE()
예제로 Json을 받아서 테이블처럼 만드는 법을 해보자.
SET @jsonstr := '[{"id": 1, "name": "example"}, {"id": 2, "name": "test"}]';
SELECT id, `name`
FROM JSON_TABLE(@jsonstr, '$[*]' COLUMNS(id BIGINT PATH '$.id', `name` VARCHAR(16) PATH '$.name')) T;
결과
위와 같이 JSON_TABLE() 함수를 쓰게 된다면 테이블처럼 SELECT가 가능하다.
이렇게 된다면 다른 테이블과의 Join으로 인해 사용할 수 있는 방법이 많아 진다.
INSERT
INSERT INTO example_user (id, `name`)
SELECT id, `name`
FROM JSON_TABLE(@jsonstr, '$[*]' COLUMNS(id BIGINT PATH '$.id', `name` VARCHAR(16) PATH '$.name')) T;
UPDATE SELECT
UPDATE example_user (id, `name`) AS U, (
SELECT id, `name`
FROM JSON_TABLE(@jsonstr, '$[*]' COLUMNS(id BIGINT PATH '$.id', `name` VARCHAR(16) PATH '$.name'))
) T
SET U.`name` = T.`name`
WHERE U.id = T.id;
반응형
'MySQL' 카테고리의 다른 글
MySQL JSON 데이터 사용하기 (JSON_TABLE, JSON_OBJECT, JSON_ARRAY) (1) | 2023.12.15 |
---|---|
데이터베이스 인덱스란? 클러스터 인덱스와 넌클러스터 인덱스 개념 차이점 (1) | 2023.11.03 |
MySQL 타입 변환 Cast / Convert (0) | 2023.10.16 |
MySQL date add, diff, 시간 계산 (더하기, 빼기) 정리 (0) | 2023.08.18 |