首页 > 后端开发 > php教程 > 如何使用 Eloquent 和 Fluent 在 Laravel 中选择随机行?

如何使用 Eloquent 和 Fluent 在 Laravel 中选择随机行?

Barbara Streisand
发布: 2024-11-12 00:42:03
原创
564 人浏览过

How to Select Random Rows in Laravel Using Eloquent and Fluent?

使用 Eloquent 和 Fluent 在 Laravel 中选择随机行

在处理大型数据集时,通常需要从数据库中检索随机行无需执行准备计数。 Laravel 提供了多种使用 Eloquent 和 Fluent 接口来实现此目的的选项。

Eloquent

Laravel 5.2 及更高版本提供了 inRandomOrder() 方法:

User::inRandomOrder()->get();
登录后复制

此方法返回指定模型中所有随机行的集合。要限制检索的行数,请使用 limit() 方法:

User::inRandomOrder()->limit(5)->get();
登录后复制

要检索单个随机行,请使用 first() 方法:

User::inRandomOrder()->first();
登录后复制

对于旧版本在 Laravel (4.2.7 - 5.1) 中,您可以使用 orderByRaw() 方法:

User::orderByRaw("RAND()")->get();
登录后复制

对于Laravel 版本 4.0 - 4.2.6,使用:

User::orderBy(DB::raw('RAND()'))->get();
登录后复制

Fluent

在 Laravel 5.2 之前的版本中,order_by() 方法与数据库一起使用::raw() 助手函数:

User::order_by(DB::raw('RAND()'))->get();
登录后复制

其他注意事项

需要注意的是,orderBy() 方法目前不允许使用除 ASC 或 DESC 之外的任何参数。因此,需要使用 orderByRaw() 方法或 inRandomOrder() 方法来随机选择行。

性能注意事项

检索大量行时,考虑对性能的影响很重要。使用 inRandomOrder() 方法可能比使用 orderByRaw() 方法更有效,因为它不需要额外的子查询来生成随机排序。

以上是如何使用 Eloquent 和 Fluent 在 Laravel 中选择随机行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板