文章目录 [+]
在我们使用Laravel中WhereIn去查询数据的时候,whereIn的数组格式是这个样子的:
array (
0 => 1,
1 => 3,
2 => 2,
3 => 4,
4 => 5,
)
但是,当我们用whereIn混合查询之后,
DB::table ('user') ->whereIn ('id',$ids) ->pluck ('id');
返回的数据却是乱的,或者有可能是如下的情况
array ( 0 => 1, 1 => 2, 2 => 4, 3 => 3, 4 => 5, )
有人说了,直接orderBy Id不就可以了吗,但是综合其他的代码,我们有可能必须按照13245这个顺序来排序,这个应该怎么办呢,这个时候,就该用到FINE_IN_SET这个Mysql函数了
DB::table ('user') ->whereIn ('id',$ids) ->orderByRaw(DB::raw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')')) ->pluck ('id');
然后,输出的结果,就成了我们想要的结果了。
发表评论