在rails应用程序中,我想按优先级排序任务,优先级的值为p1,p2,p3,nil。如果我这样排序
task..order(:priority).each do |t|
puts t
end
首先是优先级为nil的任务,然后根据顺序对其他内容进行排序。我希望没有优先级的任务最后循环。如何完成这个?
我正在使用 mysql db
答案 0 :(得分:1)
Task.order('priority IS NULL, priority DESC')
答案 1 :(得分:0)
试试这个:
task = Task.order('priority DESC NULLS LAST')
答案 2 :(得分:0)
试试这个:
Task.order(priority: :desc)
答案 3 :(得分:0)
您可以使用CASE
声明
Task.order('CASE WHEN priority IS NULL THEN p99 ELSE priority END')
更改p99
以使其最后