DB

[MySQL] JSON 조회 JSON_TABLE

snail voyager 2025. 4. 29. 00:32
728x90
반응형
  • MySQL 8.0 이상에서만 사용 가능
  • 배열 내 모든 객체를 검사 가능
{
  "list": [
    {
      "couponInfo": {
        "couponNo": "12345"
      }
    },
    {
      "couponInfo": {
        "couponNo": ""
      }
    }
  ]
}
SELECT t.*
FROM your_table yt,
JSON_TABLE(
    yt.your_column,
    '$.list[*]' COLUMNS (
        couponNo VARCHAR(255) PATH '$.couponInfo.couponNo'
    )
) AS t
WHERE JSON_VALID(yt.your_column)  -- 유효한 JSON 데이터만 처리
  AND t.couponNo IS NOT NULL
  AND t.couponNo <> '';

 

  • JSON_TABLE을 사용하여 list 배열을 펼침
  • couponInfo.couponNo 필드를 추출하여 가상 테이블 t 생성
  • couponNo IS NOT NULL → 필드가 존재하는 경우만 조회
  • couponNo <> '' → 공란("")이 아닌 경우만 조회

 

728x90
반응형