SQL: JSON_EXTRACT()

m_ngyeong·2025년 4월 16일
0

Database(DB)

목록 보기
7/7
post-thumbnail

💾 SQL


JSON_EXTRACT(json_column, '$.key')

JSON 형태로 저장된 데이터에서 할 때 사용하는 함수이다.

  • 예를 들어 아래처럼 생긴 JSON이 있다고 해보자:
{
  "price": 100,
  "qty": 3
}
  • 이 JSON이 json_data라는 컬럼에 저장돼 있다면:
SELECT JSON_EXTRACT(json_data, '$.price') 
FROM your_table;
// 100

💡 SUM(JSON_EXTRACT(...))?

추출한 값들을 전부 더하는 함수이다.

SELECT SUM(JSON_EXTRACT(json_data, '$.price')) AS total_price
FROM your_table;

→ 각 행의 JSON에서 price 값을 뽑아서 전부 더한 total_price를 구하게 된다.

⚠️ 참고

JSON_EXTRACT는 JSON 값을 그대로 반환해서, 숫자를 뽑아도 '"100"' 이런 식으로 문자열처럼 나온다.
그래서 합계를 정확히 구하려면 CAST 또는 ->> 같은 방식으로 숫자로 변환해주는 게 좋다.

SELECT SUM(CAST(JSON_EXTRACT(json_data, '$.price') AS UNSIGNED)) AS total_price
FROM your_table;

// MySQL 5.7+
SELECT SUM(json_data->>'$.price') AS total_price
FROM your_table;
profile
ʚȉɞ

0개의 댓글