sql - 查询不返回 bool 列设置为 FALSE 的记录?

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

这个让我发疯了 - 我一定错过了一些非常简单的东西,但已经谷歌搜索了 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。

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

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

最佳答案

如果您的 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/

相关文章:

php - Doctrine2 LEFT JOIN AND 产生意想不到的结果

sql - 从字符串中的第三个逗号中选择

sql - 如何计算 Oracle 表中的 YTD(年初至今)值

MySQL:选择字符串的连接和结果连接的长度

javascript - 将实例变量传递给 js Rails

ruby-on-rails - Mongoid:如何验证哈希字段上特定键的值?

ruby-on-rails - 覆盖模块类方法

sql - 将数据从一个表移动到另一个表,postgresql 版本

sql - 检查群聊应用程序中指定参与者的对话是否已存在

c++ - QPSQL 驱动程序未加载 Qt