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.