mysql - 使用随机索引和 RAND( ) 获取随机行

标签 mysql random

我正在使用以下代码从表中返回随机行。使用字段“rand”。

SELECT * 
FROM  imgs
WHERE rand > RAND( ) 
ORDER BY rand ASC 
LIMIT 1

字段 'rand' 由 mysql 在创建时使用类似于以下内容生成:

INSERT INTO imgs SET rand = RAND ()

出于某种原因,尽管每次运行都进行了更改,但结果只是具有非常低的“rand”字段的行。绝对有超过 7,000 行的完整范围。如果我将“WHERE rand > RAND( )”替换为“WHERE rand > [a number between 0-1]”,接缝工作正常

最佳答案

RAND() 生成浮点值 x,其中 0 <= x < 1.0... 要生成更大的数字(整数),请使用 FLOOR(y + (RAND() * z)) 这将生成一个值 x 其中 y <= x < (y+z)

关于mysql - 使用随机索引和 RAND( ) 获取随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721072/

相关文章:

php - 使用PHP和mysqli创建表的过程是怎样的?

Mysql Select 从表日期中查找第三周和星期几

mysql - 创建表时如何编写查询仅检查 5 个数字的邮政编码和 2 个字母的状态

python - 从列表中随机选择项目而不重复

c - 使用一维数组的排列填充一维数组

c - GLIBC 随机数生成器

mysql - 依靠 SQL

php - 按两列排序 - 使用评分最高的平均评分

python - Python中PERT分布的随机值

java - 向随机数数组中的随机位置插入一个数字