Php 如何使Laravel不自动排序
我在Php 如何使Laravel不自动排序,php,laravel,laravel-5.2,where-in,Php,Laravel,Laravel 5.2,Where In,我在$temp中的数组是数组([0]=>22[1]=>26[2]=>20[3]=>24)或22 | 26 | 20 | 24 当我这样使用时 $robjeks = DB::table('objek')->whereIn('id', $temp)->get(); 结果是20 | 22 | 24 | 26 | 它是自动排序的。我要它没有分类 如何使其与22 | 26 | 20 | 24相同 谢谢您的关注。这与拉威尔无关。请先阅读这里: 然后,要执行此操作,可以使用以下代码: $temp
$temp
中的数组是数组([0]=>22[1]=>26[2]=>20[3]=>24)
或22 | 26 | 20 | 24
当我这样使用时
$robjeks = DB::table('objek')->whereIn('id', $temp)->get();
结果是20 | 22 | 24 | 26 |
它是自动排序的。我要它没有分类
如何使其与22 | 26 | 20 | 24
相同
谢谢您的关注。这与拉威尔无关。请先阅读这里:
然后,要执行此操作,可以使用以下代码:
$temp = [22, 26, 20, 24];
$tempStr = implode(',', $temp);
$robjeks = DB::table('objek')
->whereIn('id', $temp)
->orderByRaw(DB::raw("FIELD(id, $tempStr)"))
->get();
在这种情况下,sql注入可能会有风险,因此请相应地清理数字数组
Ref:我认为它更多地与SQL有关,而不是与Laravel有关。如果您使用的是autoincrementid
,那么显然22在26之前。如果您想更改,请点击以下链接:
或者自己手动排序查询。例如:->orderBy('name')
或其他内容。可能重复的是'objek'表中的其他字段吗?可能重复的是