如果我有一个ActiveRecord模型,Foo,它有两个日期列,date_1和date_2,我想按两列中的后一列(后面的日期)进行排序,这将如何完成?答案将根据代码的简单性和使用的最少sql来判断。
类似的问题 Ruby or Rails sort on two/multiple date fields
我倾向于以下但我不知道是否有更好的方法。 经过测试的代码:
Foo.select("CASE
WHEN date_1 > date_2 THEN date_1
ELSE date_2
END AS later_date, *").order("later_date desc")
答案 0 :(得分:3)
尝试使用:
Foo.order('GREATEST(date_1, date_2) DESC')