Laravel Eloquent whereIn return 按顺序给出
Laravel Eloquent whereIn return in order given
我正在尝试按照 whereIn
传递的数组的顺序对集合进行排序
我的代码:
Posts::whereIn('id', [80, 40, 30, 100])->get()
我希望收集到 return ID 顺序为 80、40、30、100 的帖子,但它按升序排列为 30、40、80、100。我如何按我希望的顺序收到结果?
试试这个查询 -
$ids = [80, 40, 30, 100];
$implodedIds = implode(',', $ids);
Posts::whereIn('id', $ids)->orderByRaw(DB::raw("FIELD(id, $implodedIds)"))->get();
我正在尝试按照 whereIn
传递的数组的顺序对集合进行排序我的代码:
Posts::whereIn('id', [80, 40, 30, 100])->get()
我希望收集到 return ID 顺序为 80、40、30、100 的帖子,但它按升序排列为 30、40、80、100。我如何按我希望的顺序收到结果?
试试这个查询 -
$ids = [80, 40, 30, 100];
$implodedIds = implode(',', $ids);
Posts::whereIn('id', $ids)->orderByRaw(DB::raw("FIELD(id, $implodedIds)"))->get();