Mysql
 sql >> Database >  >> RDS >> Mysql

Riga casuale in MySQL

Questo evita la valutazione ripetuta di random() durante l'aggregazione e dovrebbe essere anche più veloce, come min(id) e random() vengono valutati solo una volta.

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;