Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonctionnement de la fonction RPAD() dans MySQL

Dans MySQL, le RPAD() permet de remplir la partie droite d'une chaîne avec un ou plusieurs caractères.

La façon dont cela fonctionne est que vous spécifiez la chaîne à remplir, la longueur du remplissage, ainsi que la chaîne de caractères à utiliser pour le remplissage.

Syntaxe

La syntaxe ressemble à ceci :

RPAD(str,len,padstr)

str est la chaîne à remplir, 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 1 - Utilisation de base

Voici un exemple de remplissage de la partie droite d'une chaîne avec un point d'exclamation :

SELECT RPAD('Cat', 6, '!') AS Result;

Résultat :

+--------+
| Result |
+--------+
| Cat!!! |
+--------+

Dans cet exemple, le deuxième argument est 6 , ce qui signifie que la chaîne entière doit finir par avoir une longueur de 6 caractères après que tout le rembourrage a été appliqué. Le troisième argument spécifie le caractère à utiliser pour le remplissage.

Donc, dans ce cas, si nous ne voulons qu'un seul point d'exclamation, nous pouvons le faire :

SELECT RPAD('Cat', 4, '!') AS Result;

Résultat :

+--------+
| Result |
+--------+
| Cat!   |
+--------+

Exemple 2 – 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.

Par exemple, nous pourrions reprendre l'exemple précédent et ajouter un espace avant le point d'exclamation :

SELECT RPAD('Cat', 5, ' !') AS Result;

Résultat :

+--------+
| Result |
+--------+
| Cat !  |
+--------+

Notez que nous avons également augmenté le nombre de caractères à 5 afin d'accueillir le caractère supplémentaire.

Voici un autre exemple utilisant différents caractères :

SELECT RPAD('Dog', 7, 'gone') AS Result;

Résultat :

+---------+
| Result  |
+---------+
| Doggone |
+---------+

Exemple 3 - Le deuxième argument est trop petit

Si la valeur du deuxième argument est trop petite, vous risquez de vous retrouver sans remplissage :

SELECT RPAD('Cat', 3, '!') AS Result;

Résultat :

+--------+
| Result |
+--------+
| Cat    |
+--------+

Dans d'autres cas, vous pourriez vous retrouver avec la chaîne de remplissage raccourcie, ou même raccourcir la chaîne d'origine :

SELECT 
  RPAD('Dog', 6, 'gone'),
  RPAD('Dog', 2, 'gone');

Résultat :

+------------------------+------------------------+
| RPAD('Dog', 6, 'gone') | RPAD('Dog', 2, 'gone') |
+------------------------+------------------------+
| Doggon                 | Do                     |
+------------------------+------------------------+

Notez que ces exemples sont uniquement à des fins de démonstration. Dans la plupart des cas, vous n'utiliserez pas RPAD() simplement joindre deux mots ensemble. Pour ce faire, vous feriez mieux d'utiliser CONCAT() à la place.

Exemple 4 - Un exemple de base de données

Voici un exemple de sélection de données dans une base de données et de remplissage sur son côté droit :

SELECT ArtistName, RPAD(ArtistName, 20, '.')
FROM Artists;

Résultat :

+------------------------+---------------------------+
| ArtistName             | RPAD(ArtistName, 20, '.') |
+------------------------+---------------------------+
| Iron Maiden            | Iron Maiden.........      |
| AC/DC                  | AC/DC...............      |
| Allan Holdsworth       | Allan Holdsworth....      |
| Buddy Rich             | Buddy Rich..........      |
| Devin Townsend         | Devin Townsend......      |
| Jim Reeves             | Jim Reeves..........      |
| Tom Jones              | Tom Jones...........      |
| Maroon 5               | Maroon 5............      |
| The Script             | The Script..........      |
| Lit                    | Lit.................      |
| Black Sabbath          | Black Sabbath.......      |
| Michael Learns to Rock | Michael Learns to Ro      |
| Carabao                | Carabao.............      |
| Karnivool              | Karnivool...........      |
| Birds of Tokyo         | Birds of Tokyo......      |
| Bodyjar                | Bodyjar.............      |
+------------------------+---------------------------+