一个菜鸟驿站!

Laravel针对WhereIn之后不按照数组顺序排序

PHP 2018-08-08 浏览(2416) 评论(2)
- N +

文章目录 [+]

在我们使用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');

然后,输出的结果,就成了我们想要的结果了。

微信截图_20180808141645.png

标签:
作者:猫巷

,

评论列表 (2)条评论
网友昵称:论文代写价格
论文代写价格游客5年前 (2019-01-26)回复
你做和编写我们编码的方式真的很棒。我希望学生了解你的教学方式。
网友昵称:猫巷
猫巷管理员5年前 (2019-04-18)回复
@猫巷 谢谢支持

发表评论

召唤伊斯特瓦尔