Laravel 返回数据库中的随机一行数据

更新日期: 2018-12-19 阅读次数: 2421 分类: Laravel

最佳方式

$total = Book::count() - 1;
$skip = mt_rand(0, $total);
$item = Book::select('name', 'author_id')->skip($skip)->take(1)->first();

耗内存的方式

Book::inRandomOrder()->get();

等同于

Book::orderByRaw("RAND()")->get();

耗内存的原因是,随机序需要建立临时表。

更加耗内存的 Collection 方案

Book::all()->random(1);

爱评论不评论

近期节日

2020年06月05日 世界环境日
2020年06月05日 芒种
2020年06月06日 全国爱眼日
2020年06月11日 中国人口日
2020年06月20日 世界难民日
2020年06月21日 父亲节
2020年06月21日 夏至
2020年06月22日 中国儿童慈善活动日
2020年06月23日 国际奥林匹克日
2020年06月25日 全国土地日
2020年06月25日 端午节
2020年06月26日 国际禁毒日
查看更多节日