Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:come rimuovere doppi o più spazi da una stringa?

Ecco un vecchio trucco che non richiede espressioni regolari o funzioni complicate.

Puoi utilizzare la funzione di sostituzione 3 volte per gestire un numero qualsiasi di spazi, in questo modo:

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

diventa:

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

Quindi sostituisci tutte le occorrenze di '><' con una stringa vuota '' avvolgendola in un'altra sostituzione:

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

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

Quindi, infine, un'ultima sostituzione converte '<>' in un singolo spazio

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

This is my long string

Questo esempio è stato creato in MySQL (metti un SELECT davanti) ma funziona in molte lingue.

Nota che hai solo bisogno delle 3 funzioni di sostituzione per gestire un numero qualsiasi di caratteri da sostituire.