首页  >  文章  >  后端开发  >  如何从 Laravel 数据库表中获取随机行?

如何从 Laravel 数据库表中获取随机行?

Barbara Streisand
Barbara Streisand原创
2024-11-21 16:14:10384浏览

How do I get random rows from a database table in Laravel?

在 Laravel 中获取随机行

要使用 Laravel 的 Eloquent ORM 或 Fluent 查询生成器从数据库表中检索随机行,有几种方法可用的方法,具体取决于您的 Laravel 版本

Laravel 5.2 及更高版本

在 Laravel 5.2 及更高版本中,您可以使用 inRandomOrder() 方法:

$randomUser = User::inRandomOrder()->first();
$randomUsers = User::inRandomOrder()->take(5)->get();

Laravel 5.1 和在

Laravel 5.2 之前,您将使用原始 SQL 语法来实现随机性:

$randomUser = User::orderByRaw("RAND()")->first();
$randomUsers = User::orderByRaw("RAND()")->take(5)->get();

Laravel 3

在 Laravel 中3、将order_by()方法与DB::raw()一起使用函数:

$randomUser = User::order_by(DB::raw("RAND()"))->first();
$randomUsers = User::order_by(DB::raw("RAND()"))->take(5)->get();

使用集合

或者,您可以使用集合的 random() 或 random($count) 方法来获取随机元素或数组随机的元素:

$randomUser = User::all()->random();
$randomUsers = User::all()->random(10);

注意事项

在 SQL 中,ORDER BY RAND() 对于大型表来说效率较低,因为它需要数据库引擎对所有元素进行排序记录。为了获得更好的性能,请考虑使用替代方法,例如采样或索引。

以上是如何从 Laravel 数据库表中获取随机行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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