MySQL IF NOT NULL, then display 1, else display 0
Solution 1:
Instead of COALESCE(a.addressid,0) AS addressexists
, use CASE
:
CASE WHEN a.addressid IS NOT NULL
THEN 1
ELSE 0
END AS addressexists
or the simpler:
(a.addressid IS NOT NULL) AS addressexists
This works because TRUE
is displayed as 1
in MySQL and FALSE
as 0
.
Solution 2:
SELECT c.name, IF(a.addressid IS NULL,0,1) AS addressexists
FROM customers c
LEFT JOIN addresses a ON c.customerid = a.customerid
WHERE customerid = 123