Zufällige Zeile aus Datenbank lesen

by Rainer Bendig on January 24, 2010

Da ich immer wieder drüber stolpere:

Eine zufällige Zeile liest man mit MySQL wie folgt:

SELECT * FROM table ORDER BY RAND() LIMIT 1

Für Microsoft SQL Server verwendet man

SELECT TOP 1 * FROM table ORDER BY NEWID()

Arbeitet man mit IBM DB2 braucht man

SELECT *, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Mit PostgreSQL tut es

SELECT * FROM table ORDER BY RANDOM() LIMIT 1

Oracle will es als

SELECT * FROM ( SELECT * FROM table ORDER BY dbms_random.value ) WHERE rownum = 1

Wobei es bei jeder Datenbank auf die Performance geht ;-(

Leave your comment

Required.

Required. Not published.

If you have one.