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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
10个实用的PHP代码片段
Sep 02 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 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聊天室技术
2006/10/09 PHP
php 操作调试的方法
2012/07/12 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
django创建简单的页面响应实例教程
2019/09/06 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Python调用JavaScript代码的方法
2020/10/27 Python
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
工商技校毕业生自荐信
2013/11/15 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
大学班级计划书
2014/04/29 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
结婚通知短信大全
2015/04/17 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python
Java异常处理try catch的基本用法
2021/12/06 Java/Android