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编程效率的53个要点(经验小结)
Sep 04 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
PHP接入微信H5支付的方法示例
Oct 28 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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开发环境
2015/07/28 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
2015/12/24 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
windows下python连接oracle数据库
2017/06/07 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
资深地理教师自我评价
2013/09/21 职场文书
初二物理教学反思
2014/01/29 职场文书
园林技术专业求职信
2014/07/28 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
班主任工作总结范文
2015/08/13 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
java中如何截取字符串最后一位
2022/07/07 Java/Android