MySql查询随机id


MySql query for random id

可能重复:
MySQL从600K行快速中随机选择10行

我需要从一个表中提取一个随机id。目前只存在一些记录,但随着时间的推移,它们会增长。在Php或MySql中获取此id的方法是什么,它们之间的权衡和后果是什么。最后一件事我需要速度和性能。

select * from YOUR_TABLE order by rand() limit 1

您可以在SQL:中直接实现这一点

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

另请参阅此处了解一些替代方案。

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

SELECT id FROM table ORDER BY RAND() LIMIT 1

这基本上是:取表,按随机数对记录进行排序,然后获得第一条记录的ID。

关于这一点,已经有很多问题和答案:

随机记录Mysql PHP

带有随机和desc-的mysql查询

如果您的记录少于500000条,那么RAND((就完全可以了。

SELECT * FROM tbl_name ORDER BY RAND() LIMIT 1 

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