我有一个包含条目的数据库。每个条目都有开始日期和状态字段。我想要做的是按开始日期排序条目(完成),但首先显示状态为 0 的条目,然后显示其他条目(也按开始日期排序)我也在分页数据。现在按日期排序和分页很容易做到,但不知道如何做其他事情。
最佳答案
以下构建显示 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");
我只是将订购分为 3 个不同的条件。
关于php - 拉拉维尔。如何按一个字段排序但首先获取具有另一个字段特定值的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42124849/