select * from table_name where id in ()
如上sql语句,MySQL会自动按主键自增排序,要是按IN中给定的顺序排序,写法如下:
SELECT * from `models` where `id` in (26612,26611,26610) order by field(id,26612,26611,26610);
$saves = VisitHistory::where('user_id', $user->id)
->orderBy('id', 'desc')
->offset($offset)
->limit($limit)
->get();
$ids = $saves->pluck('post_id')->toArray();
$ids_ordered = implode(',', $ids);
$items = Post::with('user:id,name,is_master,avatar_url')
->whereIn('id', $ids)
->where('status', 1)
->orderByRaw(DB::raw("FIELD(id, $ids_ordered)"))
->get();