Problema:
Você gostaria de remover caracteres específicos do início e do fim de uma string.
Exemplo:
Nosso banco de dados tem uma tabela chamada
post
com dados em duas colunas:id
e title
. id | título |
---|---|
1 | ' Notícias sobre cães ' |
3 | 'Eurovisão 2019' |
4 | 'Novo clima político' |
Vamos cortar o título de cada post para remover o espaço desnecessário no início e no final.
Solução:
Usaremos o
TRIM
função. Aqui está a consulta que você escreveria:SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Alternativamente, você pode usar a versão mais curta sem o
BOTH
palavra-chave; por padrão, TRIM
tratará isso como uma operação AMBOS. SELECT TRIM(' ' FROM title ) as new_title FROM post;
Aqui está o resultado de ambas as consultas:
new_title |
---|
'Notícias sobre cães' |
'Eurovisão 2019' |
'Novo clima político' |
Discussão:
Use o
TRIM
função se você quiser cortar uma string em uma tabela. Esta função permite remover um caractere específico do início ou do final de uma string, ou de ambas as extremidades. Esta função recebe os seguintes argumentos:- Uma palavra-chave especificando as extremidades das quais cortar (opcional—
BOTH
por padrão). - O caractere que você deseja cortar da string.
- O
FROM
palavra-chave, seguida pelo nome da coluna de string a ser cortada.
No nosso exemplo, isso se parece com:
TRIM( BOTH ' ' FROM title )
Como mencionado acima,
TRIM
pode receber outras palavras-chave como seu primeiro argumento. Além de aparar de ambas as extremidades, permite remover um caractere apenas do final de uma string ou apenas do início:TRAILING
(remover do final)LEADING
(remover do início)
O exemplo abaixo remove o espaço no final de cada título (mas também pode ser usado para cortar o espaço no início se você usar o
LEADING
palavra-chave em vez):SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
A consulta retorna o
title
coluna sem espaço no final. Observe que os espaços no início são deixados intocados. new_title |
---|
‘Notícias sobre cães’ |
'Eurovisão 2019' |
'Novo clima político' |