MySQL Newlines entfernen

18 12 2011

Auf RamTatTa hatte ich einen kleinen Bug, dass ich Leerzeilen am Ende eines Feldes nicht entfernt habe. Da der ein oder andere Reporter gerne noch ein paar Mal Enter drückt am Ende seiner Eingabe wurde die Anzeige teilweise unnötig verlängert. Den Fehler hatte ich im Code schnell behoben, doch was ist mit den bereits in der Datenbank gespeicherten Daten? Die sollen ebenfalls korrigiert werden.

Man könnte mit REPLACE arbeiten, allerdings würden dann sämtliche Newlines gelöscht, auch mitten im Text. Das darf natürlich nicht passieren. Also nutzen wir die eingebaute Funktion TRIM, die allerdings in ihrer Standardfunktionalität lediglich Leerzeichen entfernt. Also müssen wir explizit angeben, dass wir Newlines (\n) gelöscht haben möchten. Mit „both“ geben wir an, dass sowohl Newlines am Anfang wie auch am Ende des Strings entfernt werden sollen. Dies in ein UPDATE verpackt, schreibt gleich wieder die korrigierten Daten in die Datenbank.

Probleme hatte ich dann noch mit der Ersetzung. Weder ein „\n“, noch ein „\r\n“ hat bei mir irgend etwas ersetzt. Erst nachdem ich den Character-Code verwendete, waren die Leerzeilen verschwunden.

update ramtatta_reviews set urls = trim(both char(13) from urls);
Advertisements

Aktionen

Information

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s




%d Bloggern gefällt das: