思考狮身人面像 - 两个领域的复杂排序

时间:2011-02-25 15:40:56

标签: ruby-on-rails-3

我正在使用思考狮身人面像进行搜索。现在我需要通过两个字段来命令我的搜索结果 复杂的部分从这开始:

“如果date_approved不为null,请使用它,否则使用created_at日期按降序对结果进行排序”

我在不考虑sphinx的情况下实现了这个:

@model_values=Model.find(:all, 
                         :conditions => {:name => :johndoe}, 
                         :select => "*,if(date_approved,date_approved,created_at) as my_date", 
                         :order => 'my_date DESC')  

但是当我来到think_sphinx时,我感到难过 任何帮助表示赞赏 感谢

1 个答案:

答案 0 :(得分:1)

在SQL方面,您可能正在寻找ROR来生成

ORDER BY COALESCE(date_approved, created_at) DESC

COALESCE()返回第一个不为NULL的参数。