使用 Eloquent 或 Fluent 在 Laravel 中进行随机行检索
从数据库中检索随机行在各种场景中都是一个有用的操作。 Laravel 提供了两种主要方法来实现这一目标:Eloquent 和 Fluent。本文探讨了如何利用这些方法在 Laravel 中高效地检索随机行。
Eloquent
对于 Laravel 5.2 及更高版本, inRandomOrder() 方法提供了选择随机行的便捷方法。只需在所需模型上调用此方法:
$randomUser = User::inRandomOrder()->get();
这将返回 User 模型的随机实例。您还可以使用 limit() 方法指定要检索的随机行数:
$randomUsers = User::inRandomOrder()->limit(5)->get();
Fluent
对于 Laravel 5.2 之前的版本,Fluent 提供了使用 orderByRaw() 方法检索随机行的另一种方法:
// Laravel 5.1 and below $randomUser = User::orderByRaw(DB::raw('RAND()'))->get();
无行计数的随机记录检索
在不执行计数操作源于性能考虑。对于大型数据集,计算记录数量的计算成本可能很高。通过利用 SQL 中的 RAND() 函数,我们可以高效地获取随机行,而不会产生计数开销。
结论
本文中介绍的方法提供了使用 Eloquent 或 Fluent 在 Laravel 中检索随机行的有效方法。 Laravel 5.2 及更高版本中的 inRandomOrder() 方法是首选且最直接的方法。对于早期版本,Fluent 通过 orderByRaw() 方法提供了可行的替代方案。
以上是如何使用 Eloquent 或 Fluent 检索 Laravel 中的随机行?的详细内容。更多信息请关注PHP中文网其他相关文章!