【发布时间】:2012-06-24 17:23:25
【问题描述】:
目前使用:
$randomQuery = mysql_fetch_row(mysql_query("SELECT * FROM `table` WHERE `id` >= RAND() * (SELECT MAX(`id`) FROM `table`) LIMIT 1"));
表结构:
id:
2
4
5
我想确保它选择的是现有行。例如,它不应该在其随机化函数中使用 1 或 3。有没有办法在 MySQL 中做到这一点?
【问题讨论】:
-
这取决于漏洞,但我不明白这如何选择不存在的行。
-
任何使用
RAND()的解决方案都会很慢,因为它不能做索引。如需更快、正确索引的解决方案,请在此处查看我的答案:stackoverflow.com/questions/10677767/…
标签: mysql