Choć wydaje się to nieco niezręczne, oto, co można zrobić, aby osiągnąć cel:
SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1
Mówiąc najprościej, generuje N liczb losowych, gdzie N to liczba wierszy tabeli, odfiltrowuje te, które już znajdują się w tabeli, i ogranicza pozostały zestaw do jednego.
Na dużych stołach może być nieco powolny. Aby przyspieszyć działanie, możesz utworzyć widok z tych unikalnych identyfikatorów i użyć go zamiast zagnieżdżonej instrukcji select.
EDYCJA:usunięto cytaty