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

时间:2010-09-15 19:26:01

标签: 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>接缝可以正常工作兰德()'与'WHERE rand> [0-1之间的数字]'

1 个答案:

答案 0 :(得分:0)

RAND()生成浮点值x,其中0 <= x&lt; 1.0 ...以生成更大的数字(整数)使用FLOOR(y + (RAND() * z)),其将生成值x,其中y <= x&lt; (Y + Z)