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

Como preencher uma string com caracteres iniciais/à direita no MySQL – LPAD(), RPAD()


Às vezes você precisa preencher uma string com espaços. Ou talvez você o preencha com outro personagem. Às vezes você precisa preenchê-lo à esquerda. Outras vezes você precisa preenchê-lo à direita. Ou talvez você precise acolchoá-lo em ambos os lados.

Todos os itens acima podem ser feitos no MySQL usando o LPAD() e/ou RPAD() funções de string.


Sintaxe


A sintaxe de cada uma dessas funções é assim:
LPAD(str,len,padstr)
RPAD(str,len,padstr)

Onde str é a string que precisa de preenchimento, len é o comprimento desejado da string em caracteres após todo o preenchimento ter sido aplicado e padstr é a string para preenchê-lo.

Exemplo – LPAD()


Aqui está um exemplo de preenchimento do lado esquerdo de uma string:
SELECT LPAD('Cat', 6, '*') AS Result;

Resultado:
+--------+
| Result |
+--------+
| ***Cat |
+--------+

Neste exemplo, preenchemos a string com o caractere asterisco (* ). Também especificamos 6 , o que significa que a string inteira deve ter 6 caracteres de comprimento depois que todo o preenchimento for aplicado.

Então, se alterarmos o 6 dizer, 10 , eis o que acontece:
SELECT LPAD('Cat', 10, '*') AS Result;

Resultado:
+------------+
| Result     |
+------------+
| *******Cat |
+------------+

Exemplo – RPAD()


O RPAD() função funciona exatamente da mesma forma que LPAD() , com a exceção de que adiciona os caracteres à direita lado da corda:
SELECT RPAD('Cat', 6, '*') AS Result;

Resultado:
+--------+
| Result |
+--------+
| Cat*** |
+--------+

Exemplo – Ambos


Você pode usar ambas as funções juntas para preencher uma string em ambos os lados. Para fazer isso, basta passar uma função para a outra como argumento.

Assim:
SELECT LPAD(RPAD('Cat', 6, '*'), 9, '*') AS Result;

Resultado:
+-----------+
| Result    |
+-----------+
| ***Cat*** |
+-----------+

Vários caracteres


Você não está limitado a apenas um único personagem. Você pode preencher uma string com qualquer número de caracteres. Aqui está um exemplo:
SELECT RPAD('She Loves Me ', 30, 'Yeah! ') AS Result;

Resultado:
+--------------------------------+
| Result                         |
+--------------------------------+
| She Loves Me Yeah! Yeah! Yeah! |
+--------------------------------+