我有一个带条目的数据库。每个条目都有开始日期和州字段。我想要做的是按开始日期(完成)订单输入,但首先显示状态为0然后是其他(也按开始日期排序)的那些,我也分页数据。现在按日期和分页排序很容易,但不知道如何做其他事情。
答案 0 :(得分:2)
以下版本首先显示state=0
,然后按日期降序排序。您可以拨打->get()
或->paginate()
。
$builder = Model::where('something', '>', 'value')
->orderByRaw("IF(`state` = 0, 1, 0) DESC")
->orderBy('date', 'DESC');
return $builder->paginate(15);
按date ASC
订购第一个,date DESC
订购其他订单:
$builder = Model::where('something', '>', 'value')
->orderByRaw("IF(`state` = 0, 1, 0) DESC")
->orderByRaw("IF(`state` = 0, date, 1) ASC")
->orderByRaw("IF(`state` = 0, 1, date) DESC");
我只是将订购分为三种不同的条件。