Vous voudrez peut-être expérimenter avec OFFSET
, comme dans
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Le N
est le nombre de lignes dans mytable
. Vous devrez peut-être d'abord faire un SELECT COUNT(*)
pour déterminer la valeur de N
.
Mettre à jour (par Antony Hatchkins)
Vous devez utiliser floor
ici :
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Considérons un tableau de 2 lignes; random()*N
génère 0 <= x < 2
et par exemple SELECT myid FROM mytable OFFSET 1.7 LIMIT 1;
renvoie 0 lignes en raison de l'arrondi implicite à l'entier le plus proche.