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? 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? 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 Link to comment https://forums.phpfreaks.com/topic/15-random-row-in-mysql/#findComment-45 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.