LPAD mit führender Null
Ich habe eine Tabelle mit Rechnungsnummern. Richtlinien besagen, dass Zahlen aus 6 oder mehr Ziffern bestehen sollten. Zuallererst versucht zu tun:
UPDATE t1 SET NUMER=CONCAT('00000',NUMER) WHERE LENGTH(NUMER)=1;
UPDATE t1 SET NUMER=CONCAT('0000',NUMER) WHERE LENGTH(NUMER)=2;
UPDATE t1 SET NUMER=CONCAT('000',NUMER) WHERE LENGTH(NUMER)=3;
UPDATE t1 SET NUMER=CONCAT('00',NUMER) WHERE LENGTH(NUMER)=4;
UPDATE t1 SET NUMER=CONCAT('0',NUMER) WHERE LENGTH(NUMER)=5;
aber das ist nicht effizient und sogar hübsch. Ich habe es versuchtLPAD
funktion, aber dann kam problem da funktion:
UPDATE t1 SET NUMER=LPAD(NUMER,6,'0') WHERE CHAR_LENGTH(NUMER)<=6 ;
Gibt die betroffenen ZERO-Zeilen zurück. Auch gegoogelt und sie sagen, dass das Setzen von Null in Anführungszeichen das Problem lösen wird, aber hat nichts geholfen? Es ist ein täglicher Import.
BEARBEITEN: Spalte NUMER ist INT (19) und enthält bereits Daten wie:
NUMER
----------
1203
12303
123403
1234503
...
(Es ist jetzt mit Daten mit unterschiedlicher Länge von 3 bis 7 Stellen gefüllt.)