Witam! Wiele osób narzeka na to żę funkcja RAND() w zapytaniach jest zbyt wolna jest to prawda, lecz mam na to rozwiązanie, napewno jest o wiele szybsza i nie zwraca "Handler_read_rnd" w MySQL'u.

Takim zapytaniem uzyskamy podobny wynik do funkcji RAND():

  1. SELECT r1.id, r1.name FROM tabela AS r1 JOIN (SELECT ROUND( RAND( ) * (SELECT MAX(id) FROM tabela )) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 1