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

Ersetzen Sie Müllzeichen in mysql

Ich habe es herausgefunden. Ich habe das eingebaute hex von mysql verwendet Funktion, um einen Eintrag zu löschen, von dem ich wusste, dass er schlecht war.

    select hex(column) from table where id=666;

Dann suchte ich die Wörter heraus (diese Zahlen zwischen "20") und entdeckte, dass mein anstößiger Satz von Bytes tatsächlich x'C3A2E282AC2671756F743B' war . Wie dies der Art und Weise entspricht, wie ich es in PHP und von meinem System codiert gesehen habe (als e2 80 ) Ich weiß es nicht und im Moment ist es mir auch egal.

Um dies zu überprüfen, bevor Sie die Daten zerstören, schließen Sie diese wieder an mysql an:

    select x'C3A2E282AC2671756F743B';
    +---------------------------+
    | x'C3A2E282AC2671756F743B' |
    +---------------------------+
    | â€"               |
    +---------------------------+
    1 row in set (0.00 sec)

Mit der Ersetzungsabfrage wie oben konnte ich also alle fehlerhaften Daten auf einmal entfernen.

Fürs Protokoll:

    update TABLE set COLUMN = replace(COLUMN, x'C3A2E282AC2671756F743B','--');

Ich hoffe wirklich, dass dies für jemanden nützlich ist. Obwohl Kodierungsfehler in MySQL ziemlich verbreitet zu sein scheinen, habe ich überall gesucht und ich konnte keine Erklärung für diesen letztlich recht einfachen Vorgang finden.