首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

使用rand()作为查询条件出现的奇怪的有关问题

2012-05-21 
使用rand()作为查询条件出现的奇怪的问题select * from t1 where xceil(rand()*100)得到查询结果wxyzv---

使用rand()作为查询条件出现的奇怪的问题
select * from t1 where x=ceil(rand()*100)

得到查询结果
w x y z v
---------------------------------------

ptidb332971221A

npxie802402480A

可以看出x的值是不一样的, 这是为什么呢

[解决办法]
应该一样吗?
[解决办法]

引用ORDER BY RAND()同 LIMIT 的结合从一组列中选择随机样本很有用:

mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d

-> ORDER BY RAND() LIMIT 1000;

注意,在WHERE语句中,WHERE每执行一次, RAND()就会被再计算一次。

RAND()的作用不是作为一个精确的随机发生器,而是一种用来发生在同样的 MySQL版本的平台之间的可移动ad hoc随机数的快速方式。 

热点排行