Rails时间戳:由updated_at / created_at复杂的顺序

时间:2013-07-02 14:26:16

标签: mysql sql ruby-on-rails ruby ruby-on-rails-3

我有一个Realty Model,用户可以在其中创建和更新他们的不动产。

这是一些数据。为简单起见,我只是向您展示表中的时间。日期是最重要的。

Date: 2013-07-01

ID | created_at | updated_at
----------------------------
 1 | 13:00:00   | 14:00:00
 2 | 15:00:00   | 15:00:00
 3 | 16:00:00   | 17:00:00

Date: 2013-07-02

ID | created_at | updated_at
----------------------------
 4 | 10:00:00   | 10:00:00
 5 | 12:00:00   | 17:00:00
 6 | 18:00:00   | 18:00:00

在查看不动产时,我希望用户能够看到最新的不动产,首先是ordered by date DESC。因此,7月2日创建的不动产(4,5,6)应该出现在7月1日创建的不动产之前(1,2,3)。

现在是棘手的部分:

在每个特定的日子,我想区分已经创建后更新1,3,5)的Realties和刚刚创建而没有更新的 2,4,6),按时间排序。

作为结论

我想先了解不动产ordered by date DESC。在这个顺序中,我想要显示不带更新的 <{em> ordered by time DESC 第一次,然后是带有更新的不动产 {{ 1}}

结果将导致ordered by time DESC

提前致谢!

1 个答案:

答案 0 :(得分:1)

我想你想要order by这样:

order by date(created_at) desc,
         (case when created_at = updated_at then created_at end) desc,
         updated_at desc