Parfois, vous devez remplir une chaîne avec des espaces. Ou peut-être que vous le remplirez avec un autre personnage. Parfois, vous devez le rembourrer à gauche. D'autres fois, vous devez le rembourrer à droite. Ou peut-être avez-vous besoin de le rembourrer des deux côtés.
Tout ce qui précède peut être fait dans MySQL en utilisant le LPAD()
et/ou RPAD()
fonctions de chaîne.
Syntaxe
La syntaxe de chacune de ces fonctions ressemble à ceci :
LPAD(str,len,padstr) RPAD(str,len,padstr)
Où str
est la chaîne qui doit être remplie, len
est la longueur souhaitée de la chaîne en caractères après que tout le rembourrage a été appliqué, et padstr
est la chaîne avec laquelle le remplir.
Exemple – LPAD()
Voici un exemple de remplissage du côté gauche d'une chaîne :
SELECT LPAD('Cat', 6, '*') AS Result;
Résultat :
+--------+ | Result | +--------+ | ***Cat | +--------+
Dans cet exemple, nous remplissons la chaîne avec le caractère astérisque (*
). Nous spécifions également 6
, ce qui signifie que la chaîne entière doit comporter 6 caractères une fois que tout le rembourrage a été appliqué.
Donc, si nous changeons le 6
dire, 10
, voici ce qui se passe :
SELECT LPAD('Cat', 10, '*') AS Result;
Résultat :
+------------+ | Result | +------------+ | *******Cat | +------------+
Exemple – RPAD()
Le RPAD()
la fonction fonctionne exactement de la même manière que LPAD()
, sauf qu'il ajoute les caractères à droite côté de la chaîne :
SELECT RPAD('Cat', 6, '*') AS Result;
Résultat :
+--------+ | Result | +--------+ | Cat*** | +--------+
Exemple :les deux
Vous pouvez utiliser les deux fonctions ensemble pour remplir une chaîne des deux côtés. Pour ce faire, passez simplement une fonction à l'autre en tant qu'argument.
Comme ceci :
SELECT LPAD(RPAD('Cat', 6, '*'), 9, '*') AS Result;
Résultat :
+-----------+ | Result | +-----------+ | ***Cat*** | +-----------+
Plusieurs caractères
Vous n'êtes pas limité à un seul personnage. Vous pouvez remplir une chaîne avec n'importe quel nombre de caractères. Voici un exemple :
SELECT RPAD('She Loves Me ', 30, 'Yeah! ') AS Result;
Résultat :
+--------------------------------+ | Result | +--------------------------------+ | She Loves Me Yeah! Yeah! Yeah! | +--------------------------------+