Ако имате колона за ID, по-добре е да направите:
-- create a variable to hold the random number
SET @rownum := SELECT count(*) FROM table;
SET @row := (SELECT CEIL((rand() * @rownum));
-- use the random number to select on the id column
SELECT * from tablle WHERE id = @row;
Логиката на избора на произволен идентификационен номер може да бъде преместена на ниво приложение.
SELECT * FROM table ORDER BY RAND LIMIT 40
е много неефективно, защото MySQL ще обработи ВСИЧКИ записи в таблицата, извършвайки пълно сканиране на таблицата на всички редове, подреди ги на случаен принцип.