Při práci s MySQL se můžete občas setkat se situacemi, kdy potřebujete doplnit spoustu čísel úvodními nulami.
Možná máte požadavek, aby všechna čísla měla tři číslice, ale v datech, která vám byla poskytnuta, se čísla pohybují od jedné číslice po dvě a možná tři číslice. Vaším požadavkem může být doplnění všech čísel úvodními nulami, ale pouze za účelem vyrovnání případného nedostatku v požadavku na tři číslice.
LPAD()
funkce dělá přesně to, co v tomto scénáři chcete.
Funkce LPAD()
Přesně řečeno, LPAD()
funkce doplní řetězec jiným řetězcem. Funguje to takto:
LPAD(str,len,padstr)
Kde str
je řetězec k vyplnění, len
je požadovaná délka konečného výsledku a padstr
je řetězec, který bude použit k vyplnění druhého řetězce.
Příklad
Zde je příklad vyplnění jednociferného čísla dvěma nulami:
SELECT LPAD(7, 3, 0);
Výsledek:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
V tomto případě byly přidány dvě úvodní nuly, protože jsme zadali 3
jako požadovaná délka.
Pokud tedy začneme dvouciferným číslem, přidá se pouze jedna nula:
SELECT LPAD(17, 3, 0);
Výsledek:
+----------------+ | LPAD(17, 3, 0) | +----------------+ | 017 | +----------------+
Nenulové hodnoty
LPAD()
funkce není omezena pouze na nuly. Jak již bylo zmíněno, lze jej použít k podložení libovolné struny jakoukoli jinou strunou. V případě potřeby tedy můžete číslo zadat počátečními jedničkami nebo počátečními písmeny nebo jinými symboly.
SELECT LPAD(7, 10, '.');
Výsledek:
+------------------+ | LPAD(7, 10, '.') | +------------------+ | .........7 | +------------------+
A protože se ve skutečnosti jedná o funkci řetězce, lze ji použít k vyplnění libovolného nenumerického řetězce. A není omezena pouze na jeden výplňový znak – v případě potřeby jej lze doplnit více znaky:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;
Výsledek:
+-----------------------+ | Result | +-----------------------+ | Meow! Meow! Meow! Cat | +-----------------------+