LPAD z wiodącym zerem
Mam tabelę z numerami faktur. Wytyczne mówią, że cyfry powinny mieć 6 lub więcej cyfr. Przede wszystkim próbowałem to zrobić:
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;
ale to nie jest wydajne, a nawet ładne. próbowałemLPAD
funkcja, ale potem pojawił się problem, ponieważ funkcja:
UPDATE t1 SET NUMER=LPAD(NUMER,6,'0') WHERE CHAR_LENGTH(NUMER)<=6 ;
zwraca zmienione wiersze ZERO. Również googled i mówią, że wprowadzenie zera w cudzysłowy rozwiąże problem, ale nie pomogło? To codzienny import.
EDYCJA: Kolumna NUMER to INT (19) i zawiera już dane takie jak:
NUMER
----------
1203
12303
123403
1234503
...
(jest wypełniony danymi o różnej długości od 3 do 7 cyfr)