mysql 查询随机条记录的sql语句和php计算概率
SELECT * FROM uchome_mtag AS a JOIN (SELECT MAX(tagid) AS id FROM
uchome_mtag) AS b
ON (a.tagid>=FLOOR(b.id*RAND())) LIMIT 50
我试验后发现一个问题,当你的表里的总数和想要得到的条数很接近时,可能会不理想,有可能你有10条,你想查出随机的8条时,却只给出了5条的结果。
应该是那个大于等于造成的吧。
还有php算概率的,也整理在这里吧。
100% if(true)
1/2
if( rand(0,1) === 0 )
1/3 if( rand(0, 2) === 0 )
1/x if( rand(0,
x-1) === 0 )
x% if( rand(0, 99) < x )
x‰ if( rand(0,999) <
x )
/**
* 以$x/$y的概率返回true
*
* @param int $x
* @param int
$y
* @return bool
*
* prob(1,2) = 1/2
* prob(1,100) = 1/100
*
*/
function prob($x, $y){
return ( mt_rand(0, $y-1) < $x );
}
mysql 查询随机条记录的sql语句和php计算概率的更多相关文章
- mysql 查询一条记录的下一条和上一条记录
如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...
- “取出数据表中第10条到第20条记录”的sql语句+selecttop用法
1.首先,select top用法: 参考问题 select top n * from和select * from的区别 select * from table -- 取所有数据,返回无序集合 sel ...
- “取出数据表中第10条到第20条记录”的sql语句+select top 使用方法
1.首先.select top使用方法: 參考问题 select top n * from和select * from的差别 select * from table -- 取全部数据.返回无序集合 ...
- 各数据库查询前N条记录的SQL语句
sql在不同数据库查询前几条数据 1. ORACLE SELECT * FROM TABLE_NAME WHERE ROWNUM <= N; HQL: from table_name t or ...
- 从数据库表中随机获取N条记录的SQL语句
Oracle: select * from (select * from tableName order by dbms_random.value) where rownum < N MS SQ ...
- 关于多条id相同,只取其中一条记录的sql语句
需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date ) as index ...
- 【面经】面试官:如何以最高的效率从MySQL中随机查询一条记录?
写在前面 MySQL数据库在互联网行业使用的比较多,有些小伙伴可能会认为MySQL数据库比较小,存储不了很多的数据.其实,这些小伙伴是真的不了解MySQL.MySQL的小不是说使用MySQL存储的数据 ...
- 随机取若干条记录的SQL语句
原文:随机取若干条记录的SQL语句 MySql中随机提取数据库N条记录 select * from TableName order by rand() limit N SQLServer中随机提取 ...
- 不同数据库,查询前n条数据的SQL语句
不同的数据库,支持的SQL语法略有不同,以下是不同数据库查询前n条数据的SQl语句 SQL Server(MSSQL) SELECT TOP n * FROM table_name ORACLE SE ...
随机推荐
- volatile 关键字的复习
今天早上看何登成的微博(http://hedengcheng.com/?p=725) 对volatile 关键字语意进行了深入分析. 看完之后,用自己的话总结如下: 1.c/c++ volatile中 ...
- HDFS Protocol修改流程
相对于1.x版本的Hadoop,2.x版本的Hadoop采用了Protocol Buffer作为序列化反序列化工具,以及RPC通讯工具.这样当我们对Hadoop源码进行修改之前,就需要了解Ha ...
- 重温《js权威指南》 第4、5、6章
第四章 表达式和运算符 4.2 对象和数组的初始化表达式 数组: [] [3,7] [1+2,3+4] [[1,2,3,],[4,5,6],[7,8, ...
- Tail-chaining(末尾连锁)中断说明
[转载]http://lxdawn.blog.163.com/blog/static/173620990201273111337204/ Tail-chaining是指一个中断退出至下一个中断进入这段 ...
- Hibernate笔记——hql总结
原文:http://www.cnblogs.com/xiaoluo501395377/p/3376256.html ------------------------------------------ ...
- Head First HTML5 Programming笔记--chapter1 认识HTML5
升级到HTML5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 //EN" "http://www.w3.org/TR/ ...
- Java:编码的详解
ASCII:美国信息标准信息码,用一个字节的7为表示. ISO8859-1:拉丁码表 欧洲码表 ,用一个字节的8位表示. GB2312:中国的中文编码表. GBK:中国的中文编码表升级,融合了更多的中 ...
- Java:多线程之生产者与消费者
要求:用两个线程模拟存票.售票过程.但要求每存入一张票,就售出一张票,售出后,再存入,直到售完为止. 用到的知识点:线程等待.唤醒.可能的线程中断异常 下面的方式一和方式二采用的是唤醒所有等待的线程, ...
- 转载 a href=#与 a href=javascript:void(0) 的区别
a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" onCl ...
- [原]素数筛法【Sieve Of Eratosthenes + Sieve Of Euler】
拖了有段时间,今天来总结下两个常用的素数筛法: 1.sieve of Eratosthenes[埃氏筛法] 这是最简单朴素的素数筛法了,根据wikipedia,时间复杂度为 ,空间复杂度为O(n). ...