2017-08-10 1 views
-1

Ich muss mehrere hunderttausend E-Mail-Adressen randomisieren. Genau genommen müssen sie nur anonymisiert werden, aber idealerweise müssen sie einzigartig sein.Aktualisieren von Teil der SQL-Spalte Wert mit zufälliger Zeichenfolge

Ich weiß, dass ich ein Unix-Zeitstempel mit einer ziemlich zufälligen Zeichenfolge erzeugen kann

SELECT UNIX_TIMESTAMP();) 

indem Sie Also, wo ich werde nächstes ist alles vor dem @ mit einer solchen Zeichenfolge zu ersetzen, und dann alles ersetzen nach der Zeichenfolge mit @anonymised.com.

Der Teil, an dem ich festhalte, ist, wie man den Unix-Zeitstempel in den spezifischen Teil der E-Mail-Adresse einfügt. Ich weiß, ich kann mit

LEFT(email,INSTR(email,"@")-1) 

die Zeichen links von dem @ -Zeichen bekommen, und ich weiß, dass ich den Befehl REPLACE verwenden können Teil einer Zeichenfolge zu ersetzen, aber die beiden wie diese Kombination funktioniert NICHT ...

.
UPDATE USERS SET email = REPLACE(LEFT(email,INSTR(email,"@")-1), UNIX_TIMESTAMP()) 

ich vermute, dass ersetzen ist eine Zeichenfolge, anstatt eine Funktion erwartet, kann aber nicht verstehen, wo von hier aus zu ....

+0

was bedeutet "funktioniert nicht"? Es erzeugt einen Fehler? Es erzeugt ein anderes Ergebnis als erwartet? ...? – Egl

+0

Entschuldigung, ja es hat einen Syntaxfehler erzeugt. Danke fürs schauen, ich habe eine Lösung gefunden –

Antwort

0

Leider war die Lösung so einfach wie

update employees set email = CONCAT(UNIX_TIMESTAMP() , '@anonymised.com') 
Verwandte Themen