hoelz.ro - Select a random row in SQL

Select a random row in SQL

Should work in either MySQL or PostgreSQL. I can't speak to its efficiency, but it's got to be better than ORDER BY RAND().

  1. my ( $max ) = $dbh->selectrow_array('SELECT MAX(id) FROM MyTable'); # assuming id is a unique integer key on MyTable
  2. my $rand_id = int(rand($max)) + 1;
  3. my @row = $dbh->selectrow_array('SELECT * FROM MyTable WHERE id >= ? LIMIT 1', undef, $rand_id);

Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki ipv6 ready