MySql查询随机id

时间:2011-10-10 09:21:56

标签: php mysql

  

可能重复:
  MySQL select 10 random rows from 600K rows fast

我需要从表中拉出一个随机ID。此时只存在少量记录,但随着时间的推移,它们将会增长。获取此ID的方法是在Php或MySql中,以及它们之间的后果是什么。最后一件事我需要速度和性能。

5 个答案:

答案 0 :(得分:5)

select * from YOUR_TABLE order by rand() limit 1

答案 1 :(得分:3)

您可以在SQL中直接实现此目的:

SELECT `idfield` FROM `table` ORDER BY RAND() LIMIT 0,1;

还有一些替代方案see here

这将是一种简单的执行方式,而不是在PHP中构建随机化,然后传递给mySQL,尽管上面的链接详细说明了各种方法的优点。

答案 2 :(得分:0)

SELECT id FROM table ORDER BY RAND() LIMIT 1

这基本上是做什么的:拿表,用随机数命令记录,并获得第一个记录的ID。

答案 3 :(得分:0)

已经有很多问题和答案:

Random Records Mysql PHP

mysql query with random and desc

如果您的记录少于500,000条,则RAND()完全正常。

SELECT * FROM tbl_name ORDER BY RAND() LIMIT 1 

答案 4 :(得分:0)

你可以用RAND()获得一个随机数,但你仍然需要调用那个方法/函数,直到你真正得到一些东西(由于删除你可以将1,2,5,6,100作为id) 。 有http://jan.kneschke.de/projects/mysql/order-by-rand/的帖子 程序可能很有用(但据说很慢......): 1 var获取最大值 然后在1和那个间隔内产生随机(或得到最小值) 然后查询