2011-02-25 39 views
0

我正在使用思維獅身人面像進行搜索。現在我需要通過兩個字段來排列我的搜索結果。
這個複雜的部分始於此:思維獅身人面像 - 複雜排序在兩個領域

「如果date_approved不爲空使用它,否則使用created_at日期排序降序排列的結果」

我實現這個想也沒想獅身人面像爲:

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

但是,當我來thinking_sphinx,我很難過。
任何幫助表示讚賞。
感謝

+0

可能值得考慮添加一個新的列,比如'last_update',每當更新記錄時都會使用'created_at'或'date_approved'自動更新。然後你可以在Sphinx中用'last_update'進行排序。 – 2011-02-25 16:20:12

+0

感謝您的建議。我希望可以在不添加數據庫列的情況下做到這一點。我想這將是最後的手段。 – janegee 2011-02-25 16:23:38

回答

1

SQL一邊,你可能尋找ROR生產

ORDER BY COALESCE(date_approved, created_at) DESC 

COALESCE()返回,這不是空的參數。

相關問題