使用零值来锁定每个订单

时间:2016-08-18 09:05:20

标签: ruby-on-rails ruby

在rails应用程序中,我想按优先级排序任务,优先级的值为p1,p2,p3,nil。如果我这样排序

task..order(:priority).each do |t|
   puts t
end

首先是优先级为nil的任务,然后根据顺序对其他内容进行排序。我希望没有优先级的任务最后循环。如何完成这个?

我正在使用 mysql db

4 个答案:

答案 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以使其最后