Es posible que desee experimentar con OFFSET
, como en
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
El N
es el número de filas en mytable
. Es posible que primero deba hacer SELECT COUNT(*)
para averiguar el valor de N
.
Actualizar (por Antony Hatchkins)
Debes usar floor
aquí:
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Considere una tabla de 2 filas; random()*N
genera 0 <= x < 2
y por ejemplo SELECT myid FROM mytable OFFSET 1.7 LIMIT 1;
devuelve 0 filas debido al redondeo implícito al int más cercano.