您的位置:首页 > 数据库 > MySQL

mysql 随机查询数据

2014-02-07 17:55 429 查看
随机查询数据

1.

SELECT * FROM `table`

WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`)))

ORDER BY id LIMIT 5;

2.SELECT * FROM `table`

WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)))

ORDER BY id LIMIT 5;

3.SELECT *

FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2

WHERE t1.id >= t2.id

ORDER BY t1.id LIMIT 5;

备注:前两种方法测试没问题,用时很短,效率很高。10多万条数据,0.01s就能搞定。后面一种方法也有很多网友采用,但是我这儿没有执行成功,修修改改依旧不行,放弃了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: