Pseudo code: $min = SELECT MIN(id) from fortunes; $max = SELECT MAX(id) from fortunes;
While (!$row && $count < 3) { $id = rand $max + $min; if ($id > $max) { next; } $row = SELECT * from fortunes where id = $id; $count++ } If ($count >= 3) { return 1st row; } -----Original Message----- From: news [mailto:[EMAIL PROTECTED] On Behalf Of Joshua Beall Sent: Monday, December 06, 2004 12:40 PM To: [EMAIL PROTECTED] Subject: Selecting a random row Hi All, I understand that I can get a random row out of a table by doing something like SELECT * FROM fortunes ORDER BY RAND() LIMIT 1 But I have also been told that this is a very slow operation. I am building a script that will display a random saying, user testimonial, whatever, on a web page. Since this is a public page (i.e., not an admin backend), I have to be concerned about speed. What is the best way to get a random row out of a database for this sort of application? It's the sort of thing you see all the time, so I'm sure others have thought about this before. Any pointers? Sincerely, -Josh -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]