这个让我发疯了 - 我一定错过了一些非常简单的东西,但已经谷歌搜索了 2 个小时却一无所获。我正在使用 Postgresql 9.5.1 构建一个 Rails 应用程序来处理理发师的预约。其中一列可用 - 约会是否可以预订 - 它是一个 bool 值。我需要获取给定约会 ID 的接下来 5 条记录。
select *
from appointments
where id > 13
and barber_id = 1
limit 5
这将返回 5 条记录,但可用字段均为 true,即使记录 14-18 存在且属性 available = FALSE。
如果我使用查询
select * from appointments where id > 13 and barber_id = 1 and (available = false) limit 5
然后它只返回 available = FALSE 的记录,但我想要所有匹配的记录,无论是 TRUE 还是 FALSE。
我也尝试过
select * from appointments where id > 13 and barber_id = 1 and (available = false or available = true) limit 5
但这也只返回 available = TRUE 记录。
在这里撕扯我的头发 - 我错过了什么?!默认还是什么?
最佳答案
如果您的 ID 未按排序顺序,您可能需要对它们进行排序并返回
select * from appointments where id > 13 and barber_id = 1 and
(available = false or available = true) order by id asc limit 5
如果您的 bool 值不是空列,则可以完全删除它,因为您正在检查 true 和 false :)
关于sql - 查询不返回 bool 列设置为 FALSE 的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37230165/