Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ligne aléatoire dans MySQL

Cela évite l'évaluation répétée de random() pendant l'agrégation et devrait également être plus rapide, car min(id) et random() ne sont évalués qu'une seule fois.

SELECT u.* 
FROM   users u
      ,(SELECT min(id) AS min_id, max(id) AS max_id FROM users) x
WHERE  u.id > (floor((x.max_id - x.min_id + 1) * rand()) + x.min_id)
LIMIT  1;