最佳方式
$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);
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式