• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Laravel框架使用 inRandomOrder() 方式高效的随机取出N条数据

武飞扬头像
Luke
帮助614

前言

PHP的laravel框架使用mysq高性能的l随机查询取出指定的n条数据,在项目中,我们经常会需要从数据库随机的取出数据。

问题

在Laravel框架中如何高效的随机取出指定数量的数据

答案

1、使用原生的SQL从数据库取出多条条数据

Mysql官网可以看到,可以让ORDER BY RAND()LIMIT一起使用,可以从多行结果随机获取的一部分数据。

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

在laravel中使用原生SQL也很简单

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

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

我们都知道laravel的原始表达式,我们可以使用DB::raw('RAND()')从数据库随机获取数据。同时你还可以使用orderByRaw('RAND()')从数据库随机获取数据,和DB::raw('RAND()')是一样的

$info=self::where('dealing','<>','')->orderBy(DB::raw('RAND()'))->take(5)->get();

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

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

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanehka
系列文章
更多 icon
同类精品
更多 icon
继续加载