Fetching random rows using a random index and RAND( )
I'm using the following code to return a random row from a table. Using the field 'rand'.
S开发者_StackOverflow中文版ELECT * 
FROM  imgs
WHERE rand > RAND( ) 
ORDER BY rand ASC 
LIMIT 1
The field 'rand' is generated by mysql at creation using something similar to:
INSERT INTO imgs SET rand = RAND ()
For some reason the results although changing each run are only rows with a very low 'rand' field. There is definitely a complete range with over 7,000 rows. Seams to work fine if i replace the 'WHERE rand > RAND( )' with 'WHERE rand > [a number between 0-1]'
RAND() generates a floating point value x where 0 <= x < 1.0... to generate a larger number (whole number) use FLOOR(y + (RAND() * z)) which will generate a value x where y <= x < (y+z)
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论