DB/SQL

[세무민의 코딩일기] mysql에서 json 이용하기

세기루민 2021. 8. 23. 00:22
728x90

이번 포스팅에서는 mysql에서 json을 이용해보도록 하겠습니다.


# json 변수 생성
set @json='{"sgmoomin" :
[
	{"name":"Saves", "avg":70},
    {"name":"Checks", "avg":75},
    {"name":"tests", "avg":80},
    {"name":"Delts", "avg":88},
    {"name":"Alrets", "avg":66},
    {"name":"Nums", "avg":90}
]
}';

# json 아닌 경우 변수 생성
set @noJson = 70;

먼저 위의 코드처럼 임시로 테스트 json을 만들어 주겠습니다.

위의 임시로 만들어준 변수를 조회하면 json 형태로 나오게 됩니다.


# json_valid |  json_search |  json_extract

-- json 형태인 경우 1, 아닌경우 0
select json_valid(@json) ,json_valid(@noJson);

-- json 파일에서 검색하려는 값 전체를 찾아옵니다.
select json_search(@json, 'all', 'Nums');

-- json 파일에서 내가 원하는 위치의 값을 가져온다
select json_extract(@json, '$.sgmoomin[2].name');

위의 그림처럼 해당 변수가 json인지 아닌지를 확인할 때는 valid를 이용하면 됩니다.

그리고 json 변수에서 내가 원하는 값을 찾을 때는 search와 extract가 있습니다.

search는 내가 위치를 알지 못하더라도 검색해주지만 extract는 위치에 해당하는 값을 찾아줍니다.


# insert | replace | remove

-- json 파일에서 insert 할 수 있습니다.
select json_insert(@json, '$.sgmoomin[2].mData', 9999);

-- json 파일에서 replace 할 수 있습니다.
select json_replace(@json, '$.sgmoomin[2].avg', 8771);

-- json 파일에서 remove 할 수 있습니다.
select json_remove(@json, '$.sgmoomin[2]');

1. Insert

insert는 말 그대로 해당 변수에 원하는 값을 추가해주는 것을 말합니다.

위의 결과처럼 mData:9999가 결과값을 조회할 때 추가된 것을 확인할 수 있습니다.

2. replace

replace는 해당 위치의 값을 변경하는 것을 말하며 avg:8771로 변경된 것을 볼 수 있습니다.

3. remove

remove는 말 그대로 내가 원하는 위치의 값을 제거하는 것을 말합니다. 

현재의 경우에도 2번째 값이였던 test|80이 제거 된것을 확인할 수 있습니다.


이번 포스팅에서는 간단하게 mysal에서 json을 사용하는 방법을 알아봤습니다.

다음에는 더 유익한 포스팅으로 찾아오겠습니다.

 

728x90