erhalten Random-Code nicht existiert mysql
-
13-09-2019 - |
Frage
Ich habe diese SQL
select concat( char(FLOOR(97+ RAND()*26))
, char(FLOOR(97+ RAND()*26))
, FLOOR(100+ RAND()*999)
, char(FLOOR(97+ RAND()*26))) AS randomcode
WHERE NOT EXISTS (
SELECT *
FROM table
WHERE code_felt = randomcode );
Aber ich kann es nicht bekommen zu arbeiten. Hat jemand wissen, was ich hier falsch mache?
Ich brauche einen 6-Chart-Code in zufälliger zu machen und es existiert nicht in meinem Code. Ich hoffe, ich kann geholfen werden.
Lösung
Sie haben von irgendwo zu wählen. Ihre SELECT keinen Tabellennamen. Da Sie nicht wirklich zufällige Werte aus einer Tabelle auswählen, sollten Sie DUAL verwenden (dies ist eine ‚fake‘ Tabelle):
select concat(
char(97+ RAND()*26),
char(97+ RAND()*26),
floor(100+rand()*900),
char(97+ RAND()*26))
as randomcode from dual
WHERE NOT EXISTS (SELECT * FROM table WHERE code_felt = randomcode );
Dies wird manchmal wähle einen Datensatz, manchmal keine Aufzeichnungen. Wenn es keine Datensätze auswählt, müssen Sie die Abfrage wiederholen, ich kann nicht einen Weg finden, um es immer einen Datensatz auswählen.
Andere Tipps
Versuchen Sie folgendes:
select CONCAT(char(rand()*26+65),char(rand()*26+65));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow