Suche nach Sonderzeichen

Tommy57

Erfahrenes Mitglied
Hallo,

es haben sich scheinbar einige kaputte Zeichen in eine ziemlich große MySQL Tabelle eingeschlichen. Es geht um eine varchar Spalte für Namen.

Ich suche nun ein SELECT-Statement, womit ich die Zeilen kriege, in denen mehr als nur [0-9A-Za-z ] enthalten ist. Würde die Zeichen [0-9A-Za-z ] gerne einfach durch Leerzeichen ersetzen, aber habe leider nix dazu gefunden.

Hätte jemand eine Idee?

Gruß, Tommy

EDIT
Ich erhalte beim Exportieren der Tabelle folgende Meldung:
ERROR: invalid byte sequence for encoding "UTF8": 0xfc
 
Zuletzt bearbeitet:
So, hab mir jetzt was total blödes zusammengebastelt. Brauche es eh nur einmal zum korrigieren.

SQL:
SELECT 
    *
FROM
    (SELECT 
        *, 
        REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( 
        REPLACE( REPLACE(spaltenname, ' ', ''), '.', '')
        , 0, ''), 1, ''), 2, ''), 3, ''), 4, ''), 5, ''), 6, ''), 7, ''), 8, ''), 9, ''), 'A', ''), 'B', ''), 'C', ''), 'D', ''), 'E', ''), 'F', ''), 'G', ''), 'H', ''), 'I', ''), 'J', ''), 'K', ''), 'L', ''), 'M', ''), 'N', ''), 'O', ''), 'P', ''), 'Q', ''), 'R', ''), 'S', ''), 'T', ''), 'U', ''), 'V', ''), 'W', ''), 'X', ''), 'Y', ''), 'Z', ''), 'a', ''), 'b', ''), 'c', ''), 'd', ''), 'e', ''), 'f', ''), 'g', ''), 'h', ''), 'i', ''), 'j', ''), 'k', ''), 'l', ''), 'm', ''), 'n', ''), 'o', ''), 'p', ''), 'q', ''), 'r', ''), 's', ''), 't', ''), 'u', ''), 'v', ''), 'w', ''), 'x', ''), 'y', ''), 'z', '') AS invalid_chars 
    FROM 
        tabellenname) x0
WHERE
    LENGTH(invalid_chars) > 0
LIMIT 1000;


Wer es braucht, kann sich das Ding ja nach Bedarf anpassen. Hab Leerzeichen und Punkt mal in einer Zeile separat. Das kann man ja beliebig kopieren, in dem man "spaltenname" ersetzt durch " REPLACE(spaltenname, ' ', '')".

Wenn jemand eine bessere Idee hat, würde ich mich natürlich freuen. So ist das total bescheuert und irgendwie peinlich.

Gruß, Tommy
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück