首页  >  文章  >  后端开发  >  如何使用 Eloquent 或 Fluent 检索 Laravel 中的随机行?

如何使用 Eloquent 或 Fluent 检索 Laravel 中的随机行?

Patricia Arquette
Patricia Arquette原创
2024-11-11 22:36:03260浏览

How to Retrieve a Random Row in Laravel Using Eloquent or Fluent?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn