laravel的原始表达式,我们可以使用
DB::raw('RAND()')
从数据库随机获取数据。take()想要获取的n条数据
$user= user::query()->orderBy(DB::raw('RAND()'))->take(30)->get();
或者使用inRandomOrder()
$user= user::query()->inRandomOrder()->take(30)->get();
DB::raw('RAND()')和inRandomOrder()区别
DB::raw('RAND()'),直接才数据库随机N条数据返回
inRandomOrder(),先获取全部在随机排序N条数据
性能优先推荐第1个方法
期望使用 DB
$info = DB::table('user')->inRandomOrder()->take(5)->get();
期望使用原始sql
ORDER BY RAND()
和LIMIT
一起使用
$info = DB::select('SELECT * FROM user WHERE name="" ORDER BY RAND() LIMIT 100');