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();

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

被折叠的 条评论
为什么被折叠?



