laravel如何高性能地从mysql数据库中随机取出几条数据

博客围绕Laravel如何从MySQL数据库高性能随机取数据展开,如从用户表随机取100个用户。介绍了三种方法,一是用原生SQL,结合ORDER BY RAND()和LIMIT;二是用原始表达式,如DB::raw('RAND()');三是用Laravel的inRandomOrder方法对结果随机排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

laravel如何高性能地从mysql数据库中随机取出几条数据呢,如:用户表中随机取出100个用户

1、使用原生sql表中随机取100条数据

(1) ORDER BY RAND()和LIMIT一起使用,可以用于从多行结果中选取随机的一部分。

SELECT * FROM 表名 WHERE name="aa" ORDER BY RAND() LIMIT 100;

(2).那么在laravel中使用原生SQL也很简单,如下所示:

$info = DB::select('SELECT * FROM 表名 WHERE name="aa" ORDER BY RAND() LIMIT 100');

2、使用原始表达式从数据随机获取数据

laravel的原始表达式可以使用DB::raw('RAND()')从表中随机获取数据。

可以使用orderByRaw('RAND()')从数据库随机获取数据和DB::raw('RAND()')效果一样

$info=User::where('score','<>','60')

        ->orderBy(DB::raw('RAND()'))

        ->limit(100)

        ->get();

3、使用laravel的inRandomOrder方法随机获取数据:

laravel中使inRandomOrder会对数据结果进行随机排序,达到我们随机从数据库获取数据的效果:

$info = DB::table('users')

            ->inRandomOrder()

            ->limit(100)

            ->get();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值