Även om det verkar något besvärligt, är detta vad som kan göras för att uppnå målet:
SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1
Enkelt uttryckt genererar den N slumptal, där N är antalet tabellrader, filtrerar bort de som redan finns i tabellen och begränsar den återstående uppsättningen till en.
Det kan vara något långsamt på stora bord. För att påskynda saker och ting kan du skapa en vy från dessa unika ID och använda den istället för kapslad select-sats.
EDIT:borttagna citat