När du arbetar med MySQL kan du ibland stöta på situationer där du behöver fylla på en massa siffror med inledande nollor.
Kanske har du ett krav på att alla siffror ska ha tre siffror, men i den information du har fått varierar siffrorna från en ensiffrig till två och kanske tre siffror. Ditt krav kan vara att fylla alla siffror med inledande nollor, men bara för att kompensera för eventuella brister i det tresiffriga kravet.
LPAD()
funktion gör precis vad du vill i det här scenariot.
LPAD()-funktionen
Strängt taget, LPAD()
funktion fyller en sträng med en annan sträng. Det fungerar så här:
LPAD(str,len,padstr)
Där str
är strängen att fylla på, len
är den nödvändiga längden på slutresultatet och padstr
är strängen som kommer att användas för att vaddera den andra strängen.
Exempel
Här är ett exempel på att fylla ut ett ensiffrigt nummer med två nollor:
SELECT LPAD(7, 3, 0);
Resultat:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
I det här fallet lades två inledande nollor till eftersom vi angav 3
som önskad längd.
Så om vi börjar med ett tvåsiffrigt tal läggs bara en nolla till:
SELECT LPAD(17, 3, 0);
Resultat:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Icke-nollvärden
LPAD()
funktionen är inte begränsad till bara nollor. Som nämnts kan den användas för att vaddera vilken sträng som helst med vilken annan sträng som helst. Så du kan fylla ett nummer med inledande 1:or, eller inledande bokstäver eller andra symboler om det behövs.
SELECT LPAD(7, 10, '.');
Resultat:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
Och eftersom det faktiskt är en strängfunktion, kan den användas för att fylla alla icke-numeriska strängar. Och det är inte begränsat till bara ett utfyllnadstecken – det kan fyllas med flera tecken om det behövs:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Resultat:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+