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

LPAD s úvodní nulou

Myslím, že byste měli zvážit, že pokyny, které jste si přečetli, platí pro to, jak by měla být faktura zobrazována , a ne jak by měl být uložen v databázi.

Když je číslo uloženo jako INT, je to čisté číslo. Pokud přidáte nuly dopředu a znovu to uložíte, bude to stále stejné číslo.

Můžete vybrat pole NUMER následovně, nebo vytvořit pohled pro tuto tabulku:

SELECT LPAD(NUMER,6,'0') AS NUMER
FROM ...

Nebo raději než měnit data, když je vybíráte z databáze, zvažte doplnění čísla nulami, když je zobrazujete, a pouze když je zobrazujete.

Myslím, že váš požadavek, aby historická data zůstala stejná, je diskutabilní. I pro historická data platí, že faktura s číslem 001203 je stejná jako faktura s číslem 1203.

Pokud to však musíte udělat tak, jak popisujete, může převod na pole VARCHAR fungovat. Konvertovaná historická data lze uložit tak, jak jsou, a jakékoli nové položky lze doplnit na požadovaný počet nul. Ale to nedoporučuji.



  1. Dvojtečka (::) zápis v SQL

  2. UTF-8 MySQL a Charset

  3. Je vyžadován normální MySql index, když máme složený index

  4. Rozdíl v MySQL JOIN a LEFT JOIN