lut 01
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.


A może zrobić to na poziomie PHP? Czy jakiegokolwiek innego języka skryptowego a nie obciążać bazę?
http://www.chemikk.pl/wpis/44/Losowy%20rekord%20tabeli%20z%20MySQL
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?
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
Proponuję zapoznać się z problemami wydajnościowymi. Twoje rozwiązanie jest dobre, ale przy niewielkiej ilości danych.
http://blog.desmart.com/2008/03/12/sposob-na-wyciagniecie-losowego-rekordu-z-tablicy-mysql/