我正在使用以下代码从表中返回随机行。使用字段“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/