반응형
나는 여기서 약간의 디스플레이 컴 플리케이션으로 작업하고 있습니다. 내가 간과하는 IF / ELSE 기능이 있다고 확신합니다.
쿼리중인 테이블이 2 개 있습니다 (고객, 주소). 첫 번째 레코드에는 주 레코드가 있지만 두 번째 레코드에는 LEFT JOIN 대상 레코드가있을 수도 있고 없을 수도 있습니다.
주소 테이블에 레코드가 없으면 0을 표시하고 싶습니다. 그리고 레코드가있는 경우 1 만 표시하고 싶습니다.
지금까지 시도한 것 :
SELECT c.name, COALESCE(a.addressid,0) AS addressexists
FROM customers c
LEFT JOIN addresses a ON c.customerid = a.customerid
WHERE customerid = 123
이 첫 번째 예는 그렇게하지 않습니다. 그러나 COALESCE를 잘못 사용하고있을 수 있습니다.
null 인 경우 0을 표시하고 존재하는 경우 1을 표시하려면 어떻게해야합니까?
해결 방법
COALESCE (a.addressid, 0) AS addressexists
대신 CASE
를 사용합니다.
CASE WHEN a.addressid IS NOT NULL
THEN 1
ELSE 0
END AS addressexists
또는 더 간단합니다.
(a.addressid IS NOT NULL) AS addressexists
이는 TRUE
가 MySQL에서 1
로 표시되고 FALSE
가 0
으로 표시되기 때문에 작동합니다.
참조 페이지 https://stackoverflow.com/questions/9387839
반응형
'MySql' 카테고리의 다른 글
MySQL에서 값을 NULL로 설정 (0) | 2020.09.15 |
---|---|
쿼리 별 MySQL 덤프 (0) | 2020.09.15 |
MySQL 한 번에 모든 데이터베이스 내보내기 및 가져 오기 (0) | 2020.09.15 |
MySQL 날짜와 시간을 내림차순으로 정렬 하시겠습니까? (0) | 2020.09.15 |
MySQL datetime 형식 mySQL로 현재 날짜 삽입 (0) | 2020.09.15 |
댓글