I MySQL er LPAD()
funktionen giver dig mulighed for at udfylde den venstre 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:
LPAD(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 venstre del af en streng med stjernetegnet:
SELECT LPAD('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 én stjerne, kan vi gøre dette:
SELECT LPAD('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 efter stjernen:
SELECT LPAD('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 LPAD('!', 15, 'Blah ') AS Result;
Resultat:
+-----------------+ | Result | +-----------------+ | Blah Blah Blah! | +-----------------+
Eksempel 3 – Andet argument er for lille
Hvis værdien af det andet argument er for lille, kan du ende med ingen udfyldning:
SELECT LPAD('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 LPAD('Cat', 6, 'Puddy '), LPAD('Cat', 2, 'Puddy ');
Resultat:
+--------------------------+--------------------------+ | LPAD('Cat', 6, 'Puddy ') | LPAD('Cat', 2, 'Puddy ') | +--------------------------+--------------------------+ | PudCat | Ca | +--------------------------+--------------------------+
Bemærk, at disse eksempler kun er til demonstrationsformål. I de fleste tilfælde ville du ikke bruge LPAD()
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 venstre side:
SELECT Genre, LPAD(Genre, 10, '.') FROM Genres;
Resultat:
+---------+----------------------+ | Genre | LPAD(Genre, 10, '.') | +---------+----------------------+ | Rock | ......Rock | | Jazz | ......Jazz | | Country | ...Country | | Pop | .......Pop | | Blues | .....Blues | | Hip Hop | ...Hip Hop | | Rap | .......Rap | | Punk | ......Punk | +---------+----------------------+