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