laravel 模型查询按照whereIn排序的示例

 更新时间:2019年10月16日 18:13:58   作者:llllllwwwww  
今天小编就为大家分享一篇laravel 模型查询按照whereIn排序的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

实例如下所示:

$ids = [5,7,3,1,2];
$data = Content::whereIn('id',$ids)
    ->select('id')
    ->get();
//查询结果是想按照wherein的顺序排序
//正确写法
$data = Content::whereIn('id',$ids)
    ->select('id')
//   ->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $ids) . '"' . ")"))
//   ->orderBy(DB::raw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')'))
//   ->orderByRaw("FIND_IN_SET(id, '" . implode(',', $ids) . "'" . ')')
    ->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $ids) . '"' . ")"))
    ->get();

中午没睡觉一直调试,心塞...

错误写法

//错误写法
$data = Content::whereIn('id',$ids)
    ->select('id')
    ->orderByRaw("FIND_IN_SET('id', "' . implode(",", $ids) . '"' . ")")
    ->get();
//该写法查询顺序是按照id大小正序排序

原因解析

//正确写法的sql语句为
select `id` from `contents`
order by FIND_IN_SET(id, "5,6,7,4,2,1") asc
//错误写法的sql语句为
select `id` from `contents`
order by 'FIND_IN_SET(id, "5,6,7,4,2,1")' asc
//或者
select `id` from `contents`
order by `FIND_IN_SET(id, "5,6,7,4,2,1")` asc
 
//FIND_IN_SET()方法外面不要添加任何符号

以上这篇laravel 模型查询按照whereIn排序的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • php中ob函数缓冲机制深入理解

    php中ob函数缓冲机制深入理解

    这篇文章主要介绍了php中ob函数缓冲机制,有需要的小伙伴们可以来学习下
    2015-08-08
  • destoon在360浏览器下出现用户被强行注销的解决方法

    destoon在360浏览器下出现用户被强行注销的解决方法

    这篇文章主要介绍了destoon在360浏览器下出现用户被强行注销的解决方法,需要的朋友可以参考下
    2014-06-06
  • thinkPHP5.0框架模块设计详解

    thinkPHP5.0框架模块设计详解

    这篇文章主要介绍了thinkPHP5.0框架模块设计,简单讲述了thinkPHP5.0目录结构、命名规范并结合实例形式分析了模块类库的原理与访问方法,需要的朋友可以参考下
    2017-03-03
  • ThinkPHP的SAE开发相关注意事项详解

    ThinkPHP的SAE开发相关注意事项详解

    这篇文章主要介绍了ThinkPHP的SAE开发相关注意事项,结合实例形式较为详细的分析了thinkPHP针对SAE开发的相关数据库、缓存、文件、图片、日志等操作注意事项,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • phpMyAdmin 安装配置方法和问题解决

    phpMyAdmin 安装配置方法和问题解决

    今天在自己的本本上装好了PHP的环境,于是就下载了个phpadmin来管理数据库。安装过程中却发现了很多问题。
    2009-06-06
  • php+ajax导入大数据时产生的问题处理

    php+ajax导入大数据时产生的问题处理

    介绍:就是想实现简单的ajax上传数据,但是当数据量较大的时候,问题就一个一个接着来了,其实数据也不是很大,就是csv格式数据 不到5w条数据。大小5M,一开始认为这个很简单,就是先上传一下文件,然后读取一下,存到数据库就好了,结果,可能我比较菜,弄了半天做出这个功能。环境是linux.
    2014-06-06
  • PHP连接MySQL数据库三种实现方法

    PHP连接MySQL数据库三种实现方法

    这篇文章主要介绍了PHP连接MySQL数据库三种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • php微信公众号开发之关键词回复

    php微信公众号开发之关键词回复

    这篇文章主要为大家详细介绍了php微信公众号开发之关键词回复,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例

    laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例

    这篇文章主要介绍了laravel框架实现为 Blade 模板引擎添加新文件扩展名操作,结合实例形式详细分析了laravel框架Blade 模板引擎添加新文件扩展名具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2020-01-01
  • ThinkPHP连接数据库及主从数据库的设置教程

    ThinkPHP连接数据库及主从数据库的设置教程

    这篇文章主要介绍了ThinkPHP连接数据库及主从数据库的设置方法,是进行大型web项目开发十分有用的技巧,需要的朋友可以参考下
    2014-08-08

最新评论