【发布时间】:2014-01-14 14:57:32
【问题描述】:
我在 Rails 4 上并且在 Project 模型上有一个 begin_date:date 属性。我正在使用 ActiveRecord,当有 nil 值时,以下请求在 Postgres 与 SQLite 上返回不同的结果:
User.first.projects.order(begin_date: :desc, end_date: :desc)
在 Postgres 中,nil 的值被视为比现有值更高的值(因此排在第一位),而在 SQLite 记录中,nil 的值排在最后。
我做错了什么还是这是预期的行为?
如何重构上述查询,使其在 Postgres 和 SQLite 上呈现相同的结果(关于
nil值)?
PS。请,如果您强烈认为我应该在所有环境中使用相同的数据库技术:我感谢您的考虑,但我知道这一点,这个问题与那个主题无关。
【问题讨论】:
-
你希望你的
nulls 在哪一端? -
我希望它们的排名低于具有现有值的记录。
标签: ruby-on-rails sqlite postgresql activerecord ruby-on-rails-4