Du kanske vill experimentera med OFFSET
, som i
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
N
är antalet rader i mytable
. Du kan behöva göra en SELECT COUNT(*)
först för att ta reda på värdet på N
.
Uppdatera (av Antony Hatchkins)
Du måste använda floor
här:
SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
Tänk på en tabell med 2 rader; random()*N
genererar 0 <= x < 2
och till exempel SELECT myid FROM mytable OFFSET 1.7 LIMIT 1;
returnerar 0 rader på grund av implicit avrundning till närmaste int.