Vielleicht möchten Sie mit OFFSET
experimentieren , wie in
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Das N
ist die Anzahl der Zeilen in mytable
. Möglicherweise müssen Sie zuerst SELECT COUNT(*)
ausführen um den Wert von N
herauszufinden .
Aktualisieren (von Antony Hatchkins)
Sie müssen floor
verwenden hier:
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Stellen Sie sich eine Tabelle mit 2 Zeilen vor; random()*N
erzeugt 0 <= x < 2
und zum Beispiel SELECT myid FROM mytable OFFSET 1.7 LIMIT 1;
gibt 0 Zeilen zurück, da implizit auf die nächste Ganzzahl gerundet wird.