Raketenverbesserer: mysql: Überflüssige Zeichen und Zeilenumbrüche am Ende eines Strings entfernen: TRIM() ...

Beitrag lesen

Da es im Titel steht...

TRIM() gibt es auch in MySQL/MariaDB. Tut leider nicht wie in PHP:

select trim("
         text
") as txt;
+-----------------+
| txt             |
+-----------------+
| 
         text
 |
+-----------------+
1 row in set (0.000 sec)

trim() kann quasi nur Leerzeichen. Hm. Dann eben mit Regex:

Probierte Lösung:

USE test;
CREATE FUNCTION myTrim (s CHAR(255))
RETURNS CHAR(255)
RETURN(
    REGEXP_REPLACE(
        REGEXP_REPLACE(
            s,
            "[\r\n\t ]+$",
            ''
        ),
        "^[\r\n\t ]+",
        ''
    )
);


Query OK, 0 rows affected (0.022 sec)


MariaDB [test]> select myTrim("
         text
") as txt;
+------+
| txt  |
+------+
| text |
+------+
1 row in set (0.000 sec)

Die jetzt noch zu sehenden Leerzeichen wurden NUR für die Ausgabe in der Konsole eingefügt, sind nicht in Ergebnissets.