Wanneer u met MySQL werkt, kunt u af en toe situaties tegenkomen waarin u een aantal getallen met voorloopnullen moet invullen.
Misschien heb je een vereiste dat alle nummers drie cijfers hebben, maar in de gegevens die je hebt gekregen, variëren de nummers van een enkel cijfer tot twee en misschien drie cijfers. Uw vereiste zou kunnen zijn om alle getallen met voorloopnullen in te vullen, maar alleen om een eventueel tekort in de driecijferige vereiste aan te vullen.
De LPAD()
functie doet precies wat je wilt in dit scenario.
De LPAD()-functie
Strikt genomen is de LPAD()
functiepads een tekenreeks met een andere tekenreeks. Het werkt als volgt:
LPAD(str,len,padstr)
Waar str
is de tekenreeks die moet worden ingevuld, len
is de vereiste lengte van het eindresultaat, en padstr
is de tekenreeks die zal worden gebruikt om de andere tekenreeks op te vullen.
Voorbeeld
Hier is een voorbeeld van het opvullen van een eencijferig nummer met twee nullen:
SELECT LPAD(7, 3, 0);
Resultaat:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
In dit geval zijn er twee voorloopnullen toegevoegd omdat we 3
. hebben gespecificeerd als de vereiste lengte.
Dus als we beginnen met een getal van twee cijfers, wordt er maar één nul toegevoegd:
SELECT LPAD(17, 3, 0);
Resultaat:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Niet-nulwaarden
De LPAD()
functie is niet beperkt tot alleen nullen. Zoals vermeld, kan het worden gebruikt om elke snaar te vullen met een andere snaar. U kunt dus indien nodig een nummer invullen met voorloop-en-en, of hoofdletters of andere symbolen.
SELECT LPAD(7, 10, '.');
Resultaat:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
En omdat het eigenlijk een tekenreeksfunctie is, kan het worden gebruikt om elke niet-numerieke tekenreeks op te vullen. En het is niet beperkt tot slechts één opvulteken - het kan indien nodig worden opgevuld met meerdere tekens:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Resultaat:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+