【发布时间】:2016-05-14 18:05:40
【问题描述】:
这个让我发疯 - 我一定错过了一些非常简单的东西,但已经谷歌搜索了 2 个小时,却一无所获。我正在使用 Postgresql 9.5.1 构建一个 Rails 应用程序来处理理发师的约会。其中一列可用 - 如果约会可以预订 - 它是一个布尔值。我需要获取给定约会 ID 的下 5 条记录。
select *
from appointments
where id > 13
and barber_id = 1
limit 5
这将返回 5 条记录,但可用字段全部为真,即使记录 14-18 存在且属性为 available = FALSE。
如果我使用查询
select * from appointments where id > 13 and barber_id = 1 and (available = false) limit 5
然后它只返回可用 = FALSE 的记录,但我想要所有匹配的记录,无论是 TRUE 还是 FALSE。
我也试过
select * from appointments where id > 13 and barber_id = 1 and (available = false or available = true) limit 5
但这也只返回 available = TRUE 记录。
在这里扯我的头发 - 我错过了什么?!是默认还是什么?
【问题讨论】:
-
差不多
available = false。还有另一种检查布尔值的方法:length(available::text) < 5;)
标签: sql ruby-on-rails postgresql ruby-on-rails-4