[mysql] json 열에서 해당 값 추가/삭제

// 검색 후 컬럼에 값이 없으면 추가 (있으면 무시)
UPDATE 테이블명 SET
`컬럼명` = IF(JSON_CONTAINS(`컬럼명`, '"검색(삽입)값"'), `컬럼명`, JSON_ARRAY_APPEND(`컬럼명`, '$', "검색(삽입)값"))
WHERE 조건컬럼 = "조건값"

// 검색 후 컬럼에 값이 있으면 삭제 (없으면 무시)
UPDATE 테이블명 
SET `컬럼명` = JSON_REMOVE(`컬럼명`, JSON_UNQUOTE(JSON_SEARCH(`컬럼명`, 'one', '검색(삽입)값')))
WHERE 조건컬럼 = "조건값" AND JSON_SEARCH(`컬럼명`, 'one', '검색(삽입)값') IS NOT NULL 

json 컬럼 값의 형태가 배열일 경우에 해당한다.

키가 따로 있을 경우에는 또 다르게 수정해서 사용해야 한다.

Leave a Comment