Jak wybrać losowy rekord z bazy?

MySQL

SELECT author, quote FROM quotes ORDER BY RAND() LIMIT 1;

Wybiera jeden losowy rekord z tabeli quotes.

Postgresql

SELECT id, komentarz FROM (SELECT *, RANDOM() FROM komentarze ORDER BY 4) tmp_komentarze LIMIT 10;

Wybiera 10 losowych rekordów z tabeli. Liczba 4 określa ilość kolumn w tabeli +1.

4 thoughts on “Jak wybrać losowy rekord z bazy?

  1. Oczywiście że można ale po co obciążać program i zasoby które wykorzystuje skoro może zrobić to za niego baza danych bardziej wydajnie?

  2. Ja wiem czy tak wydajniej 🙂

    SELECT author, quote FROM quotes ORDER BY RAND() LIMIT 1;

    To zapytanie najpierw sortuje wszystkie a potem wybiera 1 z nich, więc to nie jest aż tak wydajne 😉

Comments are closed.