【发布时间】:2016-06-12 13:27:39
【问题描述】:
我需要返回true 或false 而不是1 和0,使用以下查询:
select if(u.id is null,false,true) status
from user u
limit 10
上述查询返回值为 0 或 1 的 status 而不是 true 和 false,
有没有办法解决这个问题?
【问题讨论】:
标签: sql
我需要返回true 或false 而不是1 和0,使用以下查询:
select if(u.id is null,false,true) status
from user u
limit 10
上述查询返回值为 0 或 1 的 status 而不是 true 和 false,
有没有办法解决这个问题?
【问题讨论】:
标签: sql
我刚刚在 lua 中遇到了类似的问题。出于某种原因,如果表列类型是“tinyint”并且您调用 1 或 0,它将返回 true 和 false。如果将列类型更改为“int”,它将在 lua 中调用并返回 1 和 0。
旧帖子,但我希望这对某人有帮助!
【讨论】:
如果需要,您可以将值作为字符串返回:
SELECT IF(u.id IS NULL, 'false', 'true') as status
FROM user u
LIMIT 10
【讨论】:
true & false 而无需将它们转换为字符串?
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;
【讨论】:
TRUE/FALSE 相当于 1/0。这只是你的前端如何显示它的问题。
如果您需要返回字符串“true”和“false”(我不建议这样做 - 在显示中处理),那么您也必须考虑到这一点:
IF(IF(u.id ISNULL,false,true) = 1, 'TRUE', 'FALSE')
【讨论】:
true & false 而无需将它们转换为字符串?
【讨论】: