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


Posted in PHP onOctober 16, 2019

实例如下所示:

$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 相关文章推荐
php数据库密码的找回的步骤
Jan 12 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 #PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 #PHP
关于laravel 子查询 & join的使用
Oct 16 #PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 #PHP
Laravel 连接(Join)示例
Oct 16 #PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 #PHP
PHP 代码简洁之道(小结)
Oct 16 #PHP
You might like
新闻分类录入、显示系统
2006/10/09 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
将php数组输出html表格的方法
2014/02/24 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
input的focus方法使用
2010/03/13 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
jquery 学习之二 属性(类)
2010/11/25 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python 爬虫的工具列表大全
2016/01/31 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
简历中个人自我评价范文
2013/12/26 职场文书
不错的求职信范文
2014/07/20 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
单位员工收入证明样本
2014/10/09 职场文书
学习作风建设心得体会
2014/10/22 职场文书
中学生社区服务活动报告
2015/02/05 职场文书