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有关。如果您使用的是autoincrement
id
,那么显然22在26之前。如果您想更改,请点击以下链接:


或者自己手动排序查询。例如:
->orderBy('name')
或其他内容。

可能重复的是'objek'表中的其他字段吗?可能重复的是