zoukankan      html  css  js  c++  java
  • 项目应用——数据展示生成随机排序

    项目应用1——按页码生成随机排序【每页元素固定不变】

    步骤:

       统计数据总页数(按照指定分页数,统计总页数)

      使用随机整数生成方法,生成可用的页码数据 https://www.cnblogs.com/sien6/p/13915254.html

      unique_rand(最小页码, 最大页码, 生成总数)

      使用redis或其他缓存工具,保存该随机数列【项目中保存两份相同数列,可进行进一步的功能设计】

      让后使用array_pop()函数,进行随机取数【该数组中的数字代表随机取得的页码数】

    ===》随机生成页码数,根据页码数获取随机数据

    项目应用2——按分页及元素混排方式随机输出【页码及元素随机输出】

    步骤:

      取出页码随机数,按照应用1 的方式生成随机也

      同样统计每页元素并生成随机数,可以采用数据连接函数array_combine()合并数组,然后顺序输出数组即可

    ===》完全随机数据展现【可实现数据每5分钟轮换随机数】

    最后附上网友实现的随机数功能:

    使用原生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');
    使用原始表达式从数据随机获取数据
    
    我们都知道laravel的原始表达式,我们可以使用DB::raw('RAND()')从数据库随机获取数据。同时你还可以使用orderByRaw('RAND()')从数据库随机获取数据,和DB::raw('RAND()')效果一样
    
    $info=self::where('dealing','<>','') 
            ->orderBy(DB::raw('RAND()')) 
            ->take(5) 
            ->get(); 
    使用laravel的inRandomOrder方法随机获取数据
    laravel中使inRandomOrder会对数据结果进行随机排序,达到我们随机从数据库获取数据的效果:
    
    $info = DB::table('users') 
                ->inRandomOrder() 
                ->take(5) 
                ->get(); 
    注:上面三种对于小数据没有问题,对于大数据,性能就不行了
    
    最高效的查询方法【这个方法有点一直半解释,希望大神给予解析说明,谢谢!】
    
    $data =Xiaoke::when($live,function ($query){ 
                $query->join( 
                    DB::raw("(SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `xiaokes`)-(SELECT MIN(id) FROM `xiaokes`))+(SELECT MIN(id) FROM `xiaokes`)) AS xid) as t2"), 
                    'xiaokes.id', '>=', 't2.xid' 
                ); 
            }); 
               ->take(3)->get(); 

    参考:

    https://blog.csdn.net/tongtongsong/article/details/88050222

  • 相关阅读:
    百度ECharts数据绑定诀窍
    SQL操作Json数据
    c# 如何得到一个字符的ASCII码
    Sql数据库收缩 语句特别快
    Hive中 使用 Round() 的坑
    [转]Hive 数据类型
    [转] Hive函数大全
    使用Hive Rest API 连接HDInsight
    Hive动态分区 参数配置及语法
    Js的引用赋值与传值赋值
  • 原文地址:https://www.cnblogs.com/sien6/p/13917222.html
Copyright © 2011-2022 走看看