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中Date获取时间不正确怎么办
Jun 05 PHP
关于php mvc开发模式的感想
Jun 28 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
linux下为php添加iconv模块的方法
Feb 28 PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
php工具型代码之印章抠图
Jul 18 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
PHP之生成GIF动画的实现方法
2013/06/07 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python计算程序运行时间的方法
2014/12/13 Python
Python实现进程同步和通信的方法
2018/01/02 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
Python交互环境下实现输入代码
2018/06/22 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
十一个高级MySql面试题
2014/10/06 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
化验员岗位职责
2015/02/14 职场文书
甲午大海战观后感
2015/06/02 职场文书
龙猫观后感
2015/06/09 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电