Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zufällige Zeile in MySQL

Dadurch wird eine wiederholte Auswertung von random() vermieden während der Aggregation und sollte auch schneller sein, als min(id) und random() werden nur einmal ausgewertet.

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;