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

MySQL:Wie entferne ich doppelte oder mehr Leerzeichen aus einer Zeichenfolge?

Hier ist ein alter Trick, der keine regulären Ausdrücke oder komplizierten Funktionen erfordert.

Sie können die Ersetzungsfunktion dreimal verwenden, um eine beliebige Anzahl von Leerzeichen zu behandeln, etwa so:

REPLACE('This is    my   long    string',' ','<>')

wird:

This<>is<><><><>my<><><>long<><><><>string

Dann ersetzen Sie alle Vorkommen von '><' durch eine leere Zeichenfolge '', indem Sie sie in eine andere Ersetzung einschließen:

REPLACE(
  REPLACE('This is    my   long    string',' ','<>'),
    '><',''
)

This<>is<>my<>long<>string

Dann schließlich wandelt ein letztes Ersetzen das '<>' zurück in ein einzelnes Leerzeichen

REPLACE(
  REPLACE(
    REPLACE('This is    my   long    string',
      ' ','<>'),
    '><',''),
  '<>',' ')

This is my long string

Dieses Beispiel wurde in MYSQL erstellt (setzen Sie ein SELECT voran), funktioniert aber in vielen Sprachen.

Beachten Sie, dass Sie immer nur die 3 Ersetzungsfunktionen benötigen, um eine beliebige Anzahl von zu ersetzenden Zeichen zu verarbeiten.