Bei der Arbeit mit MySQL kann es gelegentlich vorkommen, dass Sie eine Reihe von Zahlen mit führenden Nullen auffüllen müssen.
Vielleicht haben Sie eine Anforderung, dass alle Nummern dreistellig sein müssen, aber in den Daten, die Sie erhalten haben, reichen die Nummern von einer einzelnen Ziffer bis zu zwei und vielleicht drei Ziffern. Ihre Anforderung könnte darin bestehen, alle Zahlen mit führenden Nullen aufzufüllen, aber nur, um etwaige Lücken bei der dreistelligen Anforderung auszugleichen.
Das LPAD()
Funktion macht genau das, was Sie in diesem Szenario wollen.
Die LPAD()-Funktion
Genau genommen das LPAD()
Funktion füllt einen String mit einem anderen String auf. So funktioniert es:
LPAD(str,len,padstr)
Wobei str
ist die aufzufüllende Zeichenfolge, len
ist die erforderliche Länge des Endergebnisses und padstr
ist die Zeichenfolge, die zum Auffüllen der anderen Zeichenfolge verwendet wird.
Beispiel
Hier ist ein Beispiel für das Auffüllen einer einstelligen Zahl mit zwei Nullen:
SELECT LPAD(7, 3, 0);
Ergebnis:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
In diesem Fall wurden zwei führende Nullen hinzugefügt, weil wir 3
angegeben haben wie die erforderliche Länge.
Wenn wir also mit einer zweistelligen Zahl beginnen, wird nur eine Null hinzugefügt:
SELECT LPAD(17, 3, 0);
Ergebnis:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Werte ungleich Null
Das LPAD()
Die Funktion ist nicht auf Nullen beschränkt. Wie bereits erwähnt, kann es verwendet werden, um jede Zeichenfolge mit jeder anderen Zeichenfolge aufzufüllen. So können Sie bei Bedarf eine Zahl mit führenden Einsen, führenden Buchstaben oder anderen Symbolen auffüllen.
SELECT LPAD(7, 10, '.');
Ergebnis:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
Und da es sich eigentlich um eine Zeichenfolgenfunktion handelt, kann sie zum Auffüllen jeder nicht numerischen Zeichenfolge verwendet werden. Und es ist nicht auf nur ein Füllzeichen beschränkt – es kann bei Bedarf mit mehreren Zeichen aufgefüllt werden:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Ergebnis:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+