티스토리 뷰
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