Reputation: 4166
I need to return true
or false
rather than 1
& 0
, using following query:
select if(u.id is null,false,true) status
from user u
limit 10
the above query returns status
with value 0 or 1 rather than true
and false
,
Is there any way to fix this?
Upvotes: 7
Views: 14903
Reputation: 1
I just had a similar issue in lua. For some reason if the table column type is "tinyint" and you call 1 or 0 it will return as true and false. If you change the column type to "int" it will call and return in lua as 1 and 0.
Old post but I hope this helps someone!
Upvotes: 0
Reputation: 1270391
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
Upvotes: 9
Reputation: 2946
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;
Upvotes: 3
Reputation: 47382
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')
Upvotes: 5