我需要返回true
或false
而不是1
& 0
,使用以下查询:
select if(u.id is null,false,true) status
from user u
limit 10
以上查询返回status
,其值为0或1,而不是true
和false
,
有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
TRUE / FALSE相当于1/0。这只是前端如何显示它的问题。
如果你需要返回字符串" true"和"假" (我不建议 - 在显示屏上处理)然后你也必须考虑到这一点:
IF(IF(u.id ISNULL,false,true) = 1, 'TRUE', 'FALSE')
答案 1 :(得分:1)
如果需要,可以将值作为字符串返回:
select if(u.id is null, 'false', 'true') status
from user u
limit 10
答案 2 :(得分:1)
答案 3 :(得分:1)
MySQL没有布尔数据类型,所以你需要在MySQL端坚持使用0和1:
select if(u.id is null, 0, 1) status_int
from user u
limit 10
如果你喜欢PHP中超过0/1的布尔值,你可以像这样强制转换它:
$status = (bool) $status_int;