Ted
Ted

Reputation: 4166

MySQL: return "0" & "1" rather than "false" & "true"

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

Answers (5)

ELJRP.NET
ELJRP.NET

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

Gordon Linoff
Gordon Linoff

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

simon
simon

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

Tom H
Tom H

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

Ullas
Ullas

Reputation: 11556

IF()

You are missing single quotes.

select if(u.id is null,'false','true') status
from user u
limit 10;

Upvotes: -1

Related Questions