MySQL에서 json 배열이나 리스트를 조회하는 json_arrayagg 함수와 json 객체에서 데이터를 추출하는 json_extract 함수 사용법입니다.
JSON_ARRAYAGG란?
json_arrayagg 함수는 그룹화된 데이터를 json 배열로 집계하는 함수입니다.
데이터가 없으면 null을 반환합니다.
JSON_ARRAYAGG 사용 방법 및 예제
json_arrayagg 함수의 사용 방법은 다음과 같습니다.
json_arrayagg(컬럼이나 표현식)
json_array를 사용한 예제 쿼리입니다.
select CountryCode, json_arrayagg(Name) as 'cities'
from world.city
group by CountryCode;
예제 쿼리는 국가 코드를 기준으로 그룹화하고, 도시의 이름을 json 배열로 집계하는 쿼리입니다.
JSON_EXTRACT란?
json_extract 함수는 json 데이터에서 일치하는 데이터를 가져오는 함수입니다.
json_arrayagg 함수와의 차이점은 json_arrayagg 함수는 그룹 함수고 json_extract는 일반 함수입니다.
그리고 json_arrayagg는 그룹화된 데이터를 json 배열로 만들어주고, json_extract는 json 데이터에서 특정 데이터를 추출하는 함수입니다.
JSON_EXTRACT 사용 방법 및 예제
json_extract 함수의 사용 방법은 다음과 같습니다.
JSON_EXTRACT(json 데이터, 경로1, 경로2..)
json_extract를 사용한 예제 쿼리입니다.
select json_extract('["Kabul", "Qandahar", "Herat", "Mazar-e-Sharif", ["The Valley", "South Hill"]]', '$[1]', '$[4][0]');
json 배열 데이터의 경우, $[1]처럼 인덱스를 사용해서 데이터를 추출할 수 있습니다.
json 객체 데이터는 다음과 같이 사용하면 됩니다.
select json_extract('{"Herat": 186800, "Kabul": 1780000, "Qandahar": 237500, "Mazar-e-Sharif": 127800}', '$.Herat');
json 객체를 사용하는 경우, $.key 형식으로 사용하면 값을 추출할 수 있습니다.