개발/Mysql
[mysql] json parsing 방법 (json_extract, json_search, json_remove, json_array_append)
wwwnghks
2022. 2. 24. 14:12
mysql json 사용 방법
1. json_extract
json 안의 내용을 검색
쿼리.
SET @j = '{"a": \"1\", "b": \"4\", "c": {"d": [\"4\",\"2\"]}}';
SELECT JSON_EXTRACT(@j,'$.c.d');
결과값.
2. json_search
json 안의 내용을 검색하여 어느 위치에 있는지 알 수 있다.
파라미터 인수 2번째 값이 'all' 인 경우에는 모두 검색하여 위치를 배열로 저장한다.
(1번째 결과값과 2번쨰 결과값 확인)
쿼리.
SET @j = '{"a": \"1\", "b": \"2\", "c": {"d": \"4\"}}';
SELECT JSON_SEARCH(@j, 'one','4');
SET @j = '{"a": \"1\", "b": \"4\", "c": {"d": \"4\"}}';
SELECT JSON_SEARCH(@j, 'all','4');
1번째 결과값.
2번째 결과값.
3. json_array_append
json 안의 배열에 append 한다.
쿼리.
SET @j = '{"a": \"1\", "b": \"4\", "c": {"d": [\"4\",\"2\"]}}';
SELECT JSON_ARRAY_APPEND(@j, '$.c.d', '9');
결과값.
4.json_remove
json 안의 값을 remove 한다.
예제는 예제 3번에서 배열이 나왔음으로 json 안의 배열안의 항목을 제거하는 방법을 사용하겠습니다.
쿼리.
SET @j = '{"a": \"1\", "b": \"4\", "c": {"d": [\"4\",\"2\"]}}';
SELECT JSON_REMOVE(@j,
JSON_UNQUOTE(
JSON_SEARCH(@j, 'one','2')
)
);
결과값.