查询不返回布尔列设置为FALSE的记录?

时间:2016-05-14 18:05:40

标签: sql ruby-on-rails postgresql ruby-on-rails-4

这个让我很生气 - 我必须在这里找到一些非常简单的东西但是谷歌搜索了2个小时并且无处可去。我正在使用Postgresql 9.5.1构建一个Rails应用程序来处理理发师的约会。其中一个列可用 - 如果预约可用于预订 - 它是一个布尔值。我需要为给定的约会ID获取接下来的5条记录。

select *
from appointments
where id > 13
and barber_id = 1
limit 5

这将返回5条记录,但可用字段全部为true,即使记录14-18存在属性为available = FALSE。

Screenshot from Postico of the table

如果我使用查询

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记录。

在这里撕扯我的头发 - 我错过了什么?!默认还是什么?

1 个答案:

答案 0 :(得分:2)

如果您的ID未按排序顺序排列,您可能需要对其进行排序并返回

{{1}}

如果它是非空列,那么你的布尔值可以完全删除,因为你要检查true和false:)