sql >> Databáze >  >> RDS >> Mysql

Jak přidat úvodní nuly k číslu v MySQL

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 |
+-----------------------+


  1. Jak zkontrolovat velikost databáze MySQL v Linuxu

  2. Použití SQL LIKE a IN společně

  3. SQL Server 2016

  4. Je možné mít v MySQL index založený na funkcích?