투덜이 개발자

mysql json - select, insertm, update 본문

DataBase/MySQL

mysql json - select, insertm, update

엠투 2023. 12. 5. 11:39
반응형

mysql json - select, insertm, update

mysql  에서도 json 을 활용하여 처리가 가능하다.

select json_extract(admin_auth, '$.member_manage_read_yn') from tbl_admin_info
where json_extract(admin_auth, '$.member_manage_read_yn') = 'N';

출력

 

업데이트 쿼리

MySQL은 JOSN의 partial UPDATE를 지원한다. 

UPDATE는 JSON_SET()JSON_REPLACE()JSON_REMOVE() 3개의 함수를 이용해서 수행 할 수 있다.

JSON_SET(): 기존 값을 업데이트하고 존재하지 않을 경우 추가한다.

JSON_REPLACE(): 기존 값만 바꾼다.

JSON_REMOVE(): 값을 삭제한다. 이때 값은 NULL이 된다.

update tbl_admin_info
set admin_auth = json_set(admin_auth, '$.member_manage_read_yn', 'Y');

 

 

자세한거 아래 포스팅 참고..

https://www.joinc.co.kr/w/man/12/mysql/json

 

Mysql JSON - SELECT, INSERT, UPDATE, 색인

MySQL도 JSON을 지원합니다. SELECT, INSERT, 색인하는 법, JSON PATH 표현식을 살펴봅니다. 그리고 JSON_ARRAY, JSON_EXTRACT, JSON_OBJECT, JSON_SET, JSON_INSERT, JSON_REPLACE, JSON_VALID 등의 주요 함수 사용법도 확인합니다.

www.joinc.co.kr

 

 

json data 가 아래와 같을때 

[{"name":"아리랑","value":"1"},{"name":"2","value":"2"}]

 

 

데어터 rows 갯수를 알려면 아래와 같이 json_length 함수 이용하여 2개 임을 알수 있다.

select field_data_json
    , json_length(field_data_json)
from tbl_form_data

 

 

 

 

데이터 값을 추출할때 쿼리는 아래와 같음

select field_data_json
     , JSON_EXTRACT(field_data_json, '$[0].name') AS name_1
     , JSON_EXTRACT(field_data_json, '$[0].value') AS value_1
     , JSON_EXTRACT(field_data_json, '$[1].name') AS name_2
     , JSON_EXTRACT(field_data_json, '$[1].value') AS value_2
from tbl_form_data

 

 

 

 

 

반응형