À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! | +--------------------------------+