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 相关文章推荐
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php二维数组转成字符串示例
Feb 17 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
PHP5.5迭代生成器用法实例详解
Mar 16 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
php实现session共享的实例方法
Sep 19 PHP
PHP 对象接口简单实现方法示例
Apr 13 PHP
phpstudy隐藏index.php的方法
Sep 21 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绘图函数实现简单验证码功能的方法
2016/10/18 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
js实现交通灯效果
2017/01/13 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python实现截屏的函数
2015/07/25 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python与mysql数据库交互的实现
2020/01/06 Python
python获取栅格点和面值的实现
2020/03/10 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
小学后勤管理制度
2014/01/14 职场文书
企业消防安全制度
2014/02/02 职场文书
小学评语大全
2014/04/22 职场文书
个人投资计划书
2014/05/01 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
2015年推普周活动总结
2015/03/27 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
Python作用域和名称空间的详细介绍
2022/04/13 Python