I když se to zdá poněkud trapné, k dosažení cíle lze udělat toto:
SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1
Jednoduše řečeno, generuje N náhodných čísel, kde N je počet řádků tabulky, odfiltruje ty, které se již v tabulce nacházejí, a omezí zbývající množinu na jednu.
Na velkých stolech by to mohlo být poněkud pomalé. Chcete-li věci urychlit, můžete vytvořit pohled z těchto jedinečných ID a použít jej místo vnořeného příkazu select.
EDIT:odstraněny uvozovky