I need to return true
or false
rather than 1
& 0
, using following query:
select if(u.id is null,false
TRUE/FALSE is equivalent to 1/0. It's just a matter of how your front end displays it.
If you need to return the strings "true" and "false" (which I don't suggest - handle that in the display) then you'll have to account for that as well:
IF(IF(u.id ISNULL,false,true) = 1, 'TRUE', 'FALSE')
IF()
You are missing single quotes.
select if(u.id is null,'false','true') status
from user u
limit 10;
MySQL has no boolean datatype, so you need to stick with 0 and 1 on the MySQL side:
select if(u.id is null, 0, 1) status_int
from user u
limit 10
If you prefer a boolean over 0/1 in PHP, you can cast it like this:
$status = (bool) $status_int;
If you want, you can return the values as strings:
SELECT IF(u.id IS NULL, 'false', 'true') as status
FROM user u
LIMIT 10