我正在寻找从MySQL获取一个随机行,而无需在系统上使用太多的时间或资源。我不在乎天气代码给出的是PHP或MySQL的基础,但是请注意我的表中存在'空白'。带有PHP的随机MySQL行 - 低系统资源
我的表列 'ID'(主键,自动递增),VARCHAR,INT,INT
我希望它尽可能随机
我正在寻找从MySQL获取一个随机行,而无需在系统上使用太多的时间或资源。我不在乎天气代码给出的是PHP或MySQL的基础,但是请注意我的表中存在'空白'。带有PHP的随机MySQL行 - 低系统资源
我的表列 'ID'(主键,自动递增),VARCHAR,INT,INT
我希望它尽可能随机
我会做两个查询,总共三个步骤。
SELECT COUNT(*) FROM your_table
SELECT * FROM your_table LIMIT 200, 1
的实际数据,其中200是你在步骤2中计算出的随机数。您可以在存储过程中执行所有操作,从而节省访问次数并返回。如果数据库位于不同的主机上,则可以额外减轻网络服务器的负载,因此它可用于其目的... – 2009-11-10 20:18:11
正确。我没有定期使用存储过程,所以我不考虑在他们会用的地方使用它们:) – mwalling 2009-11-10 20:33:54
您可以使用:
SELECT id FROM table ORDER BY RAND() limit 1
不要忽略我的表中的空白:P – RSully 2009-11-10 20:09:03
对此问题已有多个答案。做一个搜索。 – dnagirl 2009-11-10 19:56:18
你关心概率分布吗? – 2009-11-10 19:56:38
Duplicate:http://stackoverflow.com/questions/142242/what-is-the-best-way-to-pick-a-random-row-from-a-table-in-mysql – 2009-11-10 20:01:56