Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:como remover espaços duplos ou mais de uma string?


Aqui está um velho truque que não requer expressões regulares ou funções complicadas.

Você pode usar a função replace 3 vezes para lidar com qualquer número de espaços, assim:
REPLACE('This is    my   long    string',' ','<>')

torna-se:
This<>is<><><><>my<><><>long<><><><>string

Em seguida, você substitui todas as ocorrências de '><' por uma string vazia ' envolvendo-a em outra substituição:
REPLACE(
  REPLACE('This is    my   long    string',' ','<>'),
    '><',''
)

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

Então, finalmente, uma última substituição converte o '<>' de volta para um único espaço
REPLACE(
  REPLACE(
    REPLACE('This is    my   long    string',
      ' ','<>'),
    '><',''),
  '<>',' ')

This is my long string

Este exemplo foi criado em MYSQL (coloque um SELECT na frente) mas funciona em vários idiomas.

Observe que você só precisa das 3 funções de substituição para manipular qualquer número de caracteres a serem substituídos.