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

这句简单的查询咋回事?求解释

2012-09-24 
这句简单的查询怎么回事?求解释我有个student表,id为1~1000,我想随机找出其中的一条记录,用下面的sqlselec

这句简单的查询怎么回事?求解释
我有个student表,id为1~1000,我想随机找出其中的一条记录,用下面的sql
select * from student where id=(select floor(1+rand()*1000));
结果有时候显示为0条,有时候居然能返回两条数据,咋回事阿?不是限定了id等于一个数字吗?怎么还能返回两条记录了?
我又试过select * from student where id>=(select floor(1+rand()*1000)) order by id limit 1;基本上只返回id为100以内的一条记录,上百的压根就看不到,请问怎么写才能比较均匀的返回1~1000之间的记录呢?

[解决办法]
SELECT * FROM student
WHERE id>=RAND()*1000
ORDER BY id
LIMIT 1;
[解决办法]
SELECT * FROM student, (select RAND()*1000 as k) b where student.id >k order by student.id limit 1

热点排行