查询结果想按照wherein的顺序排序
模型写法:
$ids = [8,7,2,1,6];
$data = User::whereIn('id',$ids)
->select('id')
->orderBy(DB::raw('FIND_IN_SET(id, "' . implode(",", $ids) . '"' . ")"))
->get();
记得要 use Illuminate\Support\Facades\DB;
也可以
->orderByRaw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')')
sql写法:
select `id`, `name` from `user` where `status` = 1 and `id` in ("8", "1", "6") order by FIND_IN_SET(id, "8,1,6");