I MySQL er RPAD()
funktionen giver dig mulighed for at fylde den højre del af en streng med et eller flere tegn.
Den måde, det fungerer på, er, at du angiver strengen til polstring, længden af polstringen samt strengen af tegn, der skal bruges til udfyldningen.
Syntaks
Syntaksen ser sådan ud:
RPAD(str,len,padstr)
Hvor str
er strengen, der skal udfyldes, len
er den ønskede længde af strengen i tegn efter al udfyldning er blevet anvendt, og padstr
er den streng, den skal polstres med.
Eksempel 1 – Grundlæggende brug
Her er et eksempel på udfyldning af den højre del af en streng med et udråbstegn:
SELECT RPAD('Cat', 6, '!') AS Result;
Resultat:
+--------+ | Result | +--------+ | Cat!!! | +--------+
I dette eksempel er det andet argument 6
, hvilket betyder, at hele strengen skal ende med at være 6 tegn lang, efter at al polstring er påført. Det tredje argument angiver, hvilket tegn der skal bruges til udfyldningen.
Så i dette tilfælde, hvis vi kun vil have ét udråbstegn, kan vi gøre dette:
SELECT RPAD('Cat', 4, '!') AS Result;
Resultat:
+--------+ | Result | +--------+ | Cat! | +--------+
Eksempel 2 – Flere tegn
Du er ikke begrænset til kun en enkelt karakter. Du kan fylde en streng med et vilkårligt antal tegn.
For eksempel kunne vi tage det forrige eksempel og tilføje et mellemrum før udråbstegn:
SELECT RPAD('Cat', 5, ' !') AS Result;
Resultat:
+--------+ | Result | +--------+ | Cat! | +--------+
Bemærk, at vi også øgede antallet af tegn til 5
for at rumme det ekstra tegn.
Her er et andet eksempel med forskellige tegn:
SELECT RPAD('Dog', 7, 'gone') AS Result;
Resultat:
+---------+ | Result | +---------+ | Doggone | +---------+
Eksempel 3 – Andet argument er for lille
Hvis værdien af det andet argument er for lille, kan du ende med ingen udfyldning:
SELECT RPAD('Cat', 3, '!') AS Result;
Resultat:
+--------+ | Result | +--------+ | Cat | +--------+
I andre tilfælde kan du ende med, at polstringsstrengen bliver klippet kort, eller du kan endda klippe den originale streng kort:
SELECT RPAD('Dog', 6, 'gone'), RPAD('Dog', 2, 'gone');
Resultat:
+------------------------+------------------------+ | RPAD('Dog', 6, 'gone') | RPAD('Dog', 2, 'gone') | +------------------------+------------------------+ | Doggon | Do | +------------------------+------------------------+
Bemærk, at disse eksempler kun er til demonstrationsformål. I de fleste tilfælde ville du ikke bruge RPAD()
blot at forbinde to ord sammen. For at gøre det er det bedre at bruge CONCAT()
i stedet.
Eksempel 4 – Et databaseeksempel
Her er et eksempel på valg af data fra en database og udfyldning på dens højre side:
SELECT ArtistName, RPAD(ArtistName, 20, '.') FROM Artists;
Resultat:
+------------------------+---------------------------+ | 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............. | +------------------------+---------------------------+