LoneAntiTrust Posted January 3, 2003 Share Posted January 3, 2003 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? Quote Link to comment https://forums.phpfreaks.com/topic/15-random-row-in-mysql/ Share on other sites More sharing options...
pallevillesen Posted January 6, 2003 Share Posted January 6, 2003 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? Quote Link to comment https://forums.phpfreaks.com/topic/15-random-row-in-mysql/#findComment-44 Share on other sites More sharing options...
pallevillesen Posted January 6, 2003 Share Posted January 6, 2003 Just a quickie: If using pure sql: select * from quotes order by rand(time_to_sec(curtime())) limit 1 This would use the number of seconds as seed... P., denmark Quote Link to comment https://forums.phpfreaks.com/topic/15-random-row-in-mysql/#findComment-45 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.