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().

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