Ich habe eine Datenbank mit mehreren tausend Datensätzen, und ich muss eines der Felder entfernen, um sicherzustellen, dass es nur bestimmte Zeichen enthält (alphanumerisch, Leerzeichen und einfache Anführungszeichen). Mit welcher SQL-Anweisung kann ich andere Zeichen (z. B. Schrägstriche usw.) aus diesem Feld in der gesamten Datenbank entfernen?
Die Funktion Replace () ist die erste Wahl. Es kann jedoch manchmal schwierig sein, Sonderzeichen in eine Konsole zu schreiben. Für diese können Sie Replace mit der Funktion Char () kombinieren.
z.B. Entfernen von €
%Vor%Hier finden Sie alle Ascii-Werte
Im Idealfall könntest du einen Regex machen, um alle speziellen Zeichen zu finden, aber anscheinend ist das mit MySQL nicht möglich .
Darüber hinaus müssen Sie es in Ihrer bevorzugten Skriptsprache ausführen.
Dies kann auch nützlich sein.
Zuerst müssen Sie den Zeichensatz der Datenbank und / oder der Tabelle kennen. Angenommen, Sie haben eine UTF-8-Umgebung und möchten Symbole wie eingekreiste registrierte Symbole, eingekreiste Copyright-Zeichen und eingetragene Markenzeichen aus einem Feld entfernen / entfernen und dann im Internet nach Bing oder Yahoo oder Google suchen Hex-Code-Werte dieser Symbole im UTF-8-System:
%Vor%Dann wird Ihre scrubbing Auswahl sql für Feld f1 aus Tabelle t1, die Hex / Unhex-Funktion in Verbindung mit der Replace-Funktion verwenden, höchstwahrscheinlich wie folgt aussehen:
SELECT
cast(unhex(replace(replace(replace(hex(f1),'C2A9',''),'C2AE',''),'E284A2','')) AS char) AS cleanf1
FROM t1
;
Beachten Sie, dass das ursprüngliche Feld, das bereinigt / bereinigt werden soll, f1 ist, die Tabelle t1 ist und der Ausgabekopf cleanf1 ist. Das "as char" Casting ist notwendig, weil, ohne es, die mysql 5.5.8, auf der ich getestet habe, Blob zurückgibt. Hoffe das hilft
Sehen Sie sich LIB_MYSQLUDF_PREG an, das in den MySQL-Server kompiliert werden muss, verfügt jedoch über erweiterte Funktionen für reguläre Ausdrücke wie preg_replace
, die bei Ihrer Aufgabe helfen wird.
Ausarbeiten auf Vinnies Antwort ... Sie können Folgendes verwenden (beachten Sie die Flucht in den letzten beiden Aussagen ...
%Vor%Ich habe dafür eine einfache Funktion erstellt
%Vor%Anwendungsbeispiel:
%Vor%