Jump to content

Random row in mySQL


LoneAntiTrust

Recommended Posts

ok, i got this code which is supposed to select a random row in mysql.

 

select * from quotes order by rand() limit 1

 

i have 10 rows in the table, and i seem to get the same row each time! i don\'t understand. maybe after reloading about 50 times i\'ll get one different row, then it will go back to the previous one for another 30 times. i have no idea why it\'s really not randomizing these.

 

any ideas?

Link to comment
https://forums.phpfreaks.com/topic/15-random-row-in-mysql/
Share on other sites

Use a seed value that differs all the time:

 


select * from quotes order by rand($seed) limit 1

 

Use some reandom integer in $seed (time or something).

 

The reason for the problem - probably because you\'re creating a shiny new connection the database each time the page is loaded and the \"not really random\" function in sql returns the same values when a new connection has been initialized (?)....

 

I think the seed is the solution - BUT remeber that the same seed returns the same random value! It would actually be a lot easier to pick a random row using the following (assuming sql and php or something similar):

 


$seed = random(10);

select * from quotes limit by $seed, 1;// picks 1 row from $seed

 

P., denmark

 

ok, i got this code which is supposed to select a random row in mysql.

 

select * from quotes order by rand() limit 1

 

i have 10 rows in the table, and i seem to get the same row each time!  i don\'t understand.  maybe after reloading about 50 times i\'ll get one different row, then it will go back to the previous one for another 30 times.  i have no idea why it\'s really not randomizing these.

 

any ideas?

Link to comment
https://forums.phpfreaks.com/topic/15-random-row-in-mysql/#findComment-44
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.