티스토리 뷰

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
반응형

'DB' 카테고리의 다른 글

[DB] INNER JOIN vs EXISTS  (0) 2025.05.06
[Oracle] 물리적 조인 (Physical Join)  (1) 2025.05.06
[MySQL] JSON 조회 JSON_EXTRACT  (1) 2023.12.06
Pessimistic Lock vs Optimistic Lock  (0) 2022.09.05
Oracle SELECT ~ FOR UPDATE (동시성 해결)  (0) 2022.03.23
반응형
300x250