Podczas pracy z MySQL możesz od czasu do czasu napotkać sytuacje, w których musisz uzupełnić kilka liczb wiodącymi zerami.
Być może masz wymóg, aby wszystkie liczby miały trzy cyfry, ale w danych, które otrzymałeś, liczby mają zakres od jednej cyfry do dwóch, a może nawet trzech cyfr. Twoim wymaganiem może być wypełnienie wszystkich liczb wiodącymi zerami, ale tylko w celu uzupełnienia wszelkich braków w trzycyfrowym wymogu.
LPAD()
funkcja robi dokładnie to, co chcesz w tym scenariuszu.
Funkcja LPAD()
Ściśle mówiąc, LPAD()
funkcja dopełnia ciąg innym ciągiem. Działa to tak:
LPAD(str,len,padstr)
Gdzie str
jest ciągiem do wypełnienia, len
to wymagana długość wyniku końcowego, a padstr
jest ciągiem, który zostanie użyty do uzupełnienia drugiego ciągu.
Przykład
Oto przykład uzupełnienia liczby jednocyfrowej dwoma zerami:
SELECT LPAD(7, 3, 0);
Wynik:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
W tym przypadku dodano dwa wiodące zera, ponieważ określiliśmy 3
jako wymaganą długość.
Jeśli więc zaczynamy od liczby dwucyfrowej, dodawane jest tylko jedno zero:
SELECT LPAD(17, 3, 0);
Wynik:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Wartości niezerowe
LPAD()
funkcja nie ogranicza się tylko do zer. Jak wspomniano, można go użyć do uzupełnienia dowolnego ciągu dowolnym innym ciągiem. Możesz więc uzupełnić liczbę z wiodącymi jedynkami, wiodącymi literami lub innymi symbolami, jeśli to konieczne.
SELECT LPAD(7, 10, '.');
Wynik:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
A ponieważ jest to w rzeczywistości funkcja łańcuchowa, może być używana do wypełniania dowolnego łańcucha nienumerycznego. I nie ogranicza się tylko do jednego znaku wypełniającego – w razie potrzeby można go uzupełnić wieloma znakami:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Wynik:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+