问答 / 1 / 6 / 创建于 3年前
我排序完的id拿去whereIn 结果却被他用id排序了 这可如何是好
->whereIn('id', $ids) ->orderByRaw(DB::raw('FIELD(id,'.implode(',',$ids).')'))
可以使用MySQL的field函数让MySQL按照指定列的指定顺序排列顺序处理,ORM使用orderByRaw
field
orderByRaw
$ids = []; $idString = implode(',', $ids); ->orderByRaw(\DB::raw("FIELD('id', $idString)"))->get();
那就写原生的SQL,再说这个排序应该不影响什么吧?
orderByRaw(sprintf("FIND_IN_SET(id, '%s')", join(',', $ids)))
能代码实现就代码实现
where id in (……) 在SQL中就是自动排序吧
where id in (……)
我要举报该,理由是: