請求書番号の表があります。ガイドラインによると、数字は 6 桁以上である必要があります。まず最初にやろうとしたこと:
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;
しかし、それは効率的ではありません。関数を試しLPAD
ましたが、関数が原因で問題が発生しました:
UPDATE t1 SET NUMER=LPAD(NUMER,6,'0') WHERE CHAR_LENGTH(NUMER)<=6 ;
影響を受けたゼロ行を返します。また、ググると、引用符にゼロを入れると問題が解決すると言われていますが、助けにはなりませんでしたか? 毎日輸入です。
編集: 列 NUMER は INT(19) であり、次のようなデータが既に含まれています:
NUMER
----------
1203
12303
123403
1234503
...
(今では3桁から7桁までの異なる長さのデータで満たされています)