laravel mysql rand_Laravel-雄辩或流利的随机行
如今已在Laravel中实现,请参见下面的“ edit 3”。
遗憾的是,截止到今天,->orderBy(DB::raw('RAND()'))提出的解决方案有一些警告:
它与数据库无关。例如SQLite和PostgreSQL使用RANDOM()
更糟糕的是,由于此更改,此解决方案不再适用:
$direction = strtolower($direction) == 'asc' ? 'asc' : 'desc';
编辑:现在您可以使用orderByRaw()方法:->orderByRaw('RAND()')。但是,这仍然不是DB不可知的。
FWIW,CodeIgniter实现了特殊的RANDOM排序方向,在构建查询时将其替换为正确的语法。同样,它似乎很容易实现。看来我们有一个候选人可以改善Laravel :)
更新:这是关于GitHub 的问题,以及我的待处理的pull请求。
编辑2:让我们切入正题。从Laravel 5.1.18开始,您可以将宏添加到查询构建器中:
use Illuminate\Database\Query\Builder;
Builder::macro('orderByRandom', function () {
$randomFunctions = [
'mysql' => 'RAND()',
'pgsql' => 'RANDOM()',
'sqlite' => 'RANDOM()',
'sqlsrv' => 'NEWID()',
];
$driver = $this->getConnection()->getDriverName();
return $this->orderByRaw($randomFunctions[$driver]);
});
用法:
User::where('active', 1)->orderByRandom()->limit(10)->get();
DB::table('users')->where('active', 1)->orderByRandom()->limit(10)->get();
编辑3:最后!从Laravel 5.2.33(changelog,PR#13642)开始,您可以使用本机方法inRandomOrder():
User::where('active', 1)->inRandomOrder()->limit(10)->get();
DB::table('users')->where('active', 1)->inRandomOrder()->limit(10)->get();
laravel mysql rand_Laravel-雄辩或流利的随机行相关推荐
- laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...
laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...
- mysql 返回随机行_从mysql数据库返回随机行而不使用rand()
我希望能够从数据库中取回15条左右的记录.我已经看到,使用WHERE id = rand()会导致性能问题,因为我的数据库变得更大.我所见过的所有解决方案都适用于选择一个随机记录.我想获得倍数.从my ...
- mysql易百_MySQL如何选择随机记录?
在本教程中,您将学习从MySQL的数据库表中选择随机记录的各种技术方法. 有时我们需要从表中选择随机记录,例如: 在博客中选择一些随机帖子,并在侧栏中显示. 在"每日报价"窗口小部 ...
- 打印查询到的mysql_从mysql查询中打印随机行
我正在寻找一种创建协作翻译部件的方式.所以我有一个mysql数据库和表(称为翻译),以及一个允许用户一次翻译一页的小脚本. 但我不太相信我的剧本.我认为它不够高效.首先,mysql获取所有具有空'en ...
- 中使用mysql连接失败_如何在命令行下使用 MySQL 连接数据库不用每次都输入密码?...
点击上方☝SpringForAll社区 轻松关注! 及时获取有趣有料的技术文章 本文来源:http://rrd.me/g7J9e 我们知道在命令行下可以使用下面的命令连接 MySQL ,其中 xxx ...
- 在数据框中采样随机行
本文翻译自:Sample random rows in dataframe I am struggling to find the appropriate function that would re ...
- 绿色版Mysql自动建立my.ini和命令行启动并动态指定datadir路径...
绿色版Mysql自动建立my.ini和命令行启动并动态指定datadir路径 1.先去下载绿色版的Mysql(https://cdn.mysql.com//archives/mysql-5.7/mys ...
- oracle 与sql serve 获取随机行数的数据
Oracle 随机获取N条数据 当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到 ...
- 配置mysql环境变量之后,在命令行输入mysql命令无效的解决方法
配置mysql环境变量之后,在命令行输入mysql命令无效的解决方法 今天在win10上安装mysql5.7时遇到了一个问题:就是配完环境变量之后输入mysql命令还是无效,我在网上查到了一个解决方案 ...
- MySQL中给数据表插入多行数据
有时因为测试需求,需要给某数据表中插入多行数据,所以自己就琢磨了一下,该过程实现涉及到了MySQL存储过程,想详细了解的可看下这个博客:MySQL存储过程,以下是具体的实现过程: 1.先创建一个表: ...
最新文章
- 半小时训练亿级规模知识图谱,亚马逊这个 AI 框架要火
- Alpha 冲刺 (10/10)
- 从文本分类来看图卷积神经网络
- 零基础学Python(第二十二章 常用内置函数)
- 夺命雷公狗—angularjs—19—angular-route
- 技术分享:开源矿工的超频
- freemarker常见语法大全
- DTW动态时间规整算法
- 图解Java中的18 把锁!
- 阿里云泄露 40 家名企源代码!
- Zabbix 结合 bat 脚本实现多个应用程序状态监控
- java中对象的克隆
- 检查linux是否安装rar,rarlinux的安装及使用
- 汽车之家各种车型参数爬虫
- Android的权限声明
- ps钢笔路径打不出字怎么解决?
- flac转mp3,flac格式如何转mp3
- U8 数据库服务器和应用服务器 分离后出现 登陆系统管理 远程组件初始化 失败 解决方案!
- OpenCV—用meanshift和Camshift进行目标追踪
- 基于Linux的tty架构及UART驱动详解
热门文章
- java决策树算法_零基础学习大数据开发技术需要哪些基础知识(1)Java、大数据基础...
- 实战flex:模拟实现静态知乎首页
- PyTorch 之 Checkpoint 机制解析
- AOP实践—ASP.NET MVC5 使用Filter过滤Action参数防止sql注入,让你代码安全简洁
- 微信端打开页面,布局乱了
- Xib中用自动布局设置UIScrollView的ContenSize
- java 小总结,以后复习看以看
- OpenCV中用findContours函数出现的问题和解决方法
- 【ubuntu操作系统入门】Ubuntu常用命令大全一
- 魔方机器人之下位机编程---------舵机控制