php - 随机 MySQL 行,同时避免漏洞

标签 php mysql random scalability

我有一个很大的 MySQL 用户表,需要从中获取六个随机行(我使用的是 PHP)。该表有一个自动递增的索引列。唯一的问题是某些行被标记为非事件状态,因为某些用户已禁用其帐户或其他原因。这意味着我不能只计算行数,然后从该范围中获取随机数,因为其中一些将处于非事件状态。

如何在不使用 RAND() 且不尝试查询非事件用户的情况下有效地获取随机行?

谢谢!

最佳答案

WHERE `inactive` = 0 LIMIT random_offset, 1

其中 random_offset 是在 PHP 中预先计算的(从 1 到 COUNT 的活跃用户中随机计算)。结果由 6 个UNIONed 查询组成。

关于php - 随机 MySQL 行,同时避免漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264361/

相关文章:

php - 使用 codeigniter 在表单上显示每个数据

php - MongoDB - 存储和读取数据的最佳方式

MYSQL 连接列而不分组

iPhone 短信随机问题?

PHP Soap Server如何知道被调用的方法

PHP 类 - fatal error : Can't use method return value in write context

mysql - 在 mysql 中连接 3 个表,其中数据不存在于两个连接中

php - 无法登录 PHP/MySQL

go - 使用 "crypto/rand"生成随机字符串直到成功是个好主意吗?

c++ - 类 getter rand 变量