Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Generierung eindeutiger mysql-Nummern

Obwohl es etwas umständlich erscheint, kann Folgendes getan werden, um das Ziel zu erreichen:

SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1

Einfach ausgedrückt, generiert es N Zufallszahlen, wobei N die Anzahl der Tabellenzeilen ist, filtert diejenigen heraus, die bereits in der Tabelle vorhanden sind, und begrenzt den verbleibenden Satz auf eins.

Bei großen Tischen könnte es etwas langsam sein. Um die Dinge zu beschleunigen, könnten Sie eine Ansicht aus diesen eindeutigen IDs erstellen und sie anstelle der verschachtelten Select-Anweisung verwenden.

EDIT:Anführungszeichen entfernt