【laravel】从数据库中查询6条随机数据的三种方法

需求是接口抛出的数据是判断条件内的随机数据,整6条。其实不难

一,我可以使用原生的SQL从数据库里获取6条数据

从MySQL官网可以看到,ORDER BY RAND()和LIMIT一起使用,可以用于选取随机的一部分。

SELECT * FROM table WHERE name = "" ORDER BY BAND()LIMIT 100;

那么在laravel中,也可以简单粗暴的实现相关功能。

dd(DB::select("SELECT * FROM table WHERE name = "" ORDER BY BAND()LIMIT 100;"));

二,我可以使用表达式直接获取

之前在learnku跟着教程走的时候,有接触过DB::raw('RAND()')从数据库中随机获取数据,orderByRaw('RAND()')效果一样,这里就懒得啰嗦了。

$info = self:: where('id','<>','')
       ->orderBy(DB::rew('RAND()'))
       ->take(6)
       ->get();

三,其实我最喜欢laravel的inRandomOrder方法

$info = DB::table('users')
        ->inRandomOrder()
        ->take(6)
        ->get();

大概是因为好记。
大功告成!!!

你可能感兴趣的:(【laravel】从数据库中查询6条随机数据的三种方法)