如何在Laravel框架中使用Eloquent或Fluent选择随机行?
我知道,通过使用SQL,您可以按RAND()进行排序。但是,我希望获得随机行,而不是在初始查询之前对记录的数量进行计数。
什么好主意吗?
如何在Laravel框架中使用Eloquent或Fluent选择随机行?
我知道,通过使用SQL,您可以按RAND()进行排序。但是,我希望获得随机行,而不是在初始查询之前对记录的数量进行计数。
什么好主意吗?
当前回答
这很好,
$model=Model::all()->random(1)->first();
你也可以改变随机函数中的参数来获得多条记录。
注意:如果你有大量的数据,不建议这样做,因为这会先获取所有行,然后返回随机值。
其他回答
这很好,
$model=Model::all()->random(1)->first();
你也可以改变随机函数中的参数来获得多条记录。
注意:如果你有大量的数据,不建议这样做,因为这会先获取所有行,然后返回随机值。
还有whereRaw('RAND()')做同样的事情,然后你可以chain ->get()或->first(),甚至疯狂地添加->paginate(int)。
您可以轻松地使用此命令:
//问题:模型的名称 //从DB中抽取10行
$questions = Question::orderByRaw('RAND()')->take(10)->get();
以下是我如何在我的一个项目中获得雄辩的随机结果:
$products = Product::inRandomOrder()->limit(10);
10 -随机记录的数量。
你可以使用:
ModelName::inRandomOrder()->first();