Pokud máte sloupec ID, je lepší udělat:
-- 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;
Logiku výběru náhodného identifikačního čísla lze přesunout na aplikační úroveň.
SELECT * FROM table ORDER BY RAND LIMIT 40
je velmi neefektivní, protože MySQL zpracuje VŠECHNY záznamy v tabulce a provede úplné prohledání tabulky na všech řádcích, seřadí je náhodně.