Når du arbejder med MySQL, kan du af og til støde på situationer, hvor du skal udfylde en masse tal med indledende nuller.
Måske har du et krav om, at alle tal skal have tre cifre, men i de data, du har fået leveret, spænder tallene fra et enkelt ciffer til to og måske tre cifre. Dit krav kan være at udfylde alle tal med foranstillede nuller, men kun for at kompensere for eventuelle mangler i det trecifrede krav.
LPAD()
funktion gør præcis, hvad du ønsker i dette scenarie.
LPAD()-funktionen
Strengt taget er LPAD()
funktion udfylder en streng med en anden streng. Det fungerer sådan her:
LPAD(str,len,padstr)
Hvor str
er strengen, der skal udfyldes, len
er den nødvendige længde af slutresultatet, og padstr
er den streng, der vil blive brugt til at polstre den anden streng.
Eksempel
Her er et eksempel på udfyldning af et enkeltcifret tal med to nuller:
SELECT LPAD(7, 3, 0);
Resultat:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
I dette tilfælde blev to indledende nuller tilføjet, fordi vi specificerede 3
som den nødvendige længde.
Så hvis vi starter med et tocifret tal, tilføjes kun ét nul:
SELECT LPAD(17, 3, 0);
Resultat:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Ikke-nul værdier
LPAD()
funktion er ikke begrænset til kun nuller. Som nævnt kan den bruges til at polstre enhver streng med enhver anden streng. Så du kan udfylde et tal med indledende 1'ere, eller indledende bogstaver eller andre symboler, hvis det kræves.
SELECT LPAD(7, 10, '.');
Resultat:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
Og fordi det faktisk er en strengfunktion, kan den bruges til at udfylde enhver ikke-numerisk streng. Og det er ikke begrænset til kun ét udfyldningstegn - det kan udfyldes med flere tegn, hvis det er nødvendigt:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Resultat:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+