我有一个很大的 MySQL 用户表,需要从中获取六个随机行(我使用的是 PHP)。该表有一个自动递增的索引列。唯一的问题是某些行被标记为非事件状态,因为某些用户已禁用其帐户或其他原因。这意味着我不能只计算行数,然后从该范围中获取随机数,因为其中一些将处于非事件状态。
如何在不使用 RAND() 且不尝试查询非事件用户的情况下有效地获取随机行?
谢谢!
最佳答案
WHERE `inactive` = 0 LIMIT random_offset, 1
其中 random_offset
是在 PHP 中预先计算的(从 1 到 COUNT
的活跃用户中随机计算)。结果由 6 个UNION
ed 查询组成。
关于php - 随机 MySQL 行,同时避免漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264361/