PHP实现在数据库百万条数据中随机获取20条记录的方法
本文实例讲述了PHP实现在数据库百万条数据中随机获取20条记录的方法。分享给大家供大家参考,具体如下:
额,为什么要写这个?
在去某个公司面试时,让写个算法出来,当时就蒙了,我开发过程中用到算法的吗?又不是大数据开发,分析。
今天偶然想起来一个坑爹数据,如:PHP取百万条数据中随机20条记录,当时就用的算法。
1.先统计统计数据库多少条记录(这个做个数据缓存,如1小时重新统计一次),
2.根据总条数,随机1次,1次性取出20条记录(当然这个就相当于分页了,要求不高的话,这个最快,我用的就是这个);
还有一种方法,随机20次,重复执行20次。
例如:
$sum=800000;//得到总条数 //循环取数据 for($i=1;$i<=20;$i++){ $offset=mt_rand(1,$sum); //控制重复对比的,请自行实现 //数据库取数据的,请自行实现 $sql="select * from table limit $offset,1"; echo $sql; }
当然还有其他随机方法,如:http://www.jb51.net/article/18299.htm
PS:这里再为大家提供一款功能类似的在线工具供大家参考:
在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
php中实现获取随机数组列表的自定义函数
贴一段代码,在php中获取随机数组 不用多说,直接贴代码,php中的array_rand很变态,突破了正常人的理解,繁琐 function create_random_ids( $min,$max,$limited ) { $_base_ids = range($min,$max); $_temp_key = array_rand ($_base_ids,min(count($_base_ids),$limited+10)); //拼接 $ids = array(); for ($x=0; $x
-
php获取随机数组列表的方法
本文实例讲述了php获取数组中随机数组的实例程序,分享给大家供大家参考.具体实现方法如下: 不用多说,直接贴代码,php中的array_rand很变态,突破了正常人的理解,非常繁琐 例1: 复制代码 代码如下: function create_random_ids( $min,$max,$limited ) { $_base_ids = range($min,$max); $_temp_key = array_rand ($_base_ids,min(count($_base_i
-
PHP 获取目录下的图片并随机显示的代码
当时想做一个随机更换背景图片的功能,用JavaScript写的话,程序流程应该是:建立一个图片数组->随机选择数组里其中一个值->生成样式并写入body标签. 可是用JS做的话,有以下缺点: 1.万一浏览器禁用了JS的话就失效了,而且写代码是需要考虑兼容性. 2.维护比较麻烦,图片的位置都存放在数组里. 于是我提议用PHP处理,可是我和她对PHP都是半桶水的,一时之间也想不出怎么做.今天时运高,看到一个PHP随机显示目录下图片的源码,学习一下,并分享之. 先看看原理:从一个目录里获取某类型文件
-
php 从指定数字中获取随机组合的简单方法(推荐)
例如:给定数字100,需要随机获取3个组成这个数字的组合,例如70,20,10 代码如下: <?php /** * 获取指定数字的随机数字组合 * @param Int $var 数字 * @param Int $num 组合这个数字的数量 * @return Array */ function getNumGroups($var, $num){ // 数量不正确 if($var<$num){ return array(); } $total = 0; $result = array(); f
-
php随机获取金山词霸每日一句的方法
本文实例讲述了php随机获取金山词霸每日一句的方法.分享给大家供大家参考.具体实现方法如下: header('Content-Type:text/html; charset=utf-8'); $nowyear=date("Y"); $nowmouth = date('m'); $nowday = date('d'); $date = mt_rand("2012",$nowyear)."-".mt_rand("1",$nowmo
-
php获取一定范围内取N个不重复的随机数
本文实例讲述了php获取一定范围内取N个不重复的随机数的方法.分享给大家供大家参考,具体如下: //range 是将1000到9999 列成一个数组 $numbers = range (1000,9999); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $result = array_slice($numbers,0,3); print_r($result); 运行结果为: Array ( [0] => 9767
-
PHP随机获取未被微信屏蔽的域名(微信域名检测)
用户名和KEY请到www.weixin139.com获取 <?php $url = "https://api.weixin139.com/weixin/domain/auto_check_list?user=xxx&key=xxx&type=1"; $con = get_msg($url); $data = json_decode($con,true); $count = count($data)-1; $rand = rand(0,$count); echo $
-
php获取指定数量随机字符串的方法
本文实例讲述了php获取指定数量随机字符串的方法.分享给大家供大家参考,具体如下: function getARandLetter($number = 1) { if ($number == 0) return FALSE; //去除0 $number = $number < 0 ? - $number : $number; //如果小于零取正值 $letterArr = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
-
深入PHP获取随机数字和字母的方法详解
第一种方法 复制代码 代码如下: <?php $FileID=date("Ymd-His") . '-' . rand(100,999); //$FileID为 20100903-132121-908 这样的的随机数?> 第二种方法 复制代码 代码如下: <?phpfunction randomkeys($length) { $returnStr=''; $pattern = '1234567890abcdefghijklmnopqrstuvwxy
-
php+mysql实现数据库随机重排实例
本文实例实现了php+mysql数据库随机重排的方法,可将表中的所有数据随机读出来一次之后再进行随机保存到另一个表,从而达到了记录随机的功能. 主要实现代码如下: 复制代码 代码如下: <?php //数据库连接就不写在这里面了 $s = isset( $_GET['s'] )?$_GET['s']:0; $e = isset( $_GET['e'])?$_GET['e']:50; $count =85000; if( $s < $count ) { $sql = "select
-
php 利用array_slice函数获取随机数组或前几条数据
先给大家说下基本语法: array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] ) array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列. 如果 offset 非负,则序列将从 array 中的此偏移量开始.如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始. 如果给出了 length 并且为正,则序列中
-
php获取四位字母和数字的随机数的实现方法
那么我们知道在php中简单的四位数的纯数字验证可以用rand(1000,9999)就可以了,但如果我们要得到字母和数字的随机四位数,那我们该如何写函数呢?下面胡鹏博客在php资料栏目下给出一个完整的实例. <?php function GetfourStr($len) { $chars_array = array( "0", "1", "2", "3", "4", "5", &qu
随机推荐
- Sql server 2008 express远程登录实例设置 图文教程
- javascript获取浏览器类型和版本的方法(js获取浏览器版本)
- javascript 控制弹出窗口
- input禁止键盘及中文输入,但可以点击
- 基于代数方程库Algebra.js解二元一次方程功能示例
- php array_udiff_assoc 计算两个数组的差集实例
- 优化NFR之一 --MSSQL Hello Buffer Overflow
- 整理很详细的Java正则表达式使用大全
- python简单分割文件的方法
- 基于Vue生产环境部署详解
- jQuery动画效果图片轮播特效
- SQL_Server全文索引的使用实例演示
- jQuery弹簧插件编写基础之“又见弹窗”
- 初学JS的的小例子 javascript replace高亮替换
- 根据list中对象的属性去重和排序小结(必看篇)
- 将文件上传、下载(以二进制流保存到数据库)实现代码
- windows系统下 虚拟内存设置终极攻略
- Java this 关键字的使用方法详解
- Android中使用TextureView播放视频
- Android使用View Animation实现动画加载界面