본문 바로가기
MySql

MySQL IF NOT NULL, 다음 표시 1, 그렇지 않으면 표시 0

by 베이스 공부 2020. 9. 15.
반응형

나는 여기서 약간의 디스플레이 컴 플리케이션으로 작업하고 있습니다. 내가 간과하는 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

 

 

반응형

댓글