MySQL hat eine Eigenart, auf die man Rücksicht nehmen muss. Die Trim Funktion entfernt standardmassig nur Leerzeichen. Wagenrückläuft (Carriage Return und Line Feeds) bleiben erhalten. Wenn man die entfernen will muss man das seperat machen. Glücklicherweise unterstützt Mysql einen damit:
trim('\r' from str)
Die Dokumentation beschreibt die Funktion wie folgt:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM(remstr FROM] str)
Gibt den String str zurück, bei dem alle remstr-Präfixe oder -Suffixe entfernt wurden. Wenn keine der Konfigurationsangaben BOTH, LEADING oder TRAILING angegeben wurde, wird BOTH vorausgesetzt. remstr ist optional; sofern es nicht angegeben ist, werden Leerzeichen entfernt.
Ich persönlich hätte es schöner gefunden, wenn sich die Funktion wie jede andere Trim-Funktion, zum Beispiel das Trim in PHP verhält und nicht sichbare Zeichen mit abschneidet. Erst recht schade, das SQL nicht ein Standard-Set an Funktionen definiert, die ein Datenbank haben muss und die immer gleich funktionieren. So könnte man endlich mal portable Datenbankanwendungen schreiben … nur so eine Idee …