【问题标题】:Rails timestamps: complex order by updated_at / created_atRails 时间戳:updated_at / created_at 的复杂顺序
【发布时间】:2013-07-02 14:26:15
【问题描述】:

我有一个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) 和刚刚创建没有更新 (@ 987654327@),同时按时间对它们进行排序。

结论

我想先拥有不动产ordered by date DESC。在这个顺序中,我想展示房地产没有更新 ordered by time DESC 首先,然后是房地产有更新 ordered by time DESC

结果将导致6,4,5,2,3,1

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    我想你想要这样的order by

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

    【讨论】:

    • 我不得不将date(created_at) 更改为date(updated_at),然后它就像一个魅力! :) 谢谢分配!
    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 2019-01-22
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多