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中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
php生成图形(Libchart)实例
Nov 06 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
laravel邮件发送的实现代码示例
Jan 31 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php微信开发接入
2016/08/27 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
range 标准化之获取
2011/08/28 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
python实现淘宝购物系统
2019/10/25 Python
如何使用python代码操作git代码
2020/02/29 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
中学实习教师自我鉴定
2013/12/12 职场文书
学生会主席就职演讲稿
2014/01/14 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS