我有发票号码表.指南说数字应该有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;
Run Code Online (Sandbox Code Playgroud)
但这并不高效,甚至很漂亮.我试过LPAD
功能,但后来问题因为功能:
UPDATE t1 SET NUMER=LPAD(NUMER,6,'0') WHERE CHAR_LENGTH(NUMER)<=6 ;
Run Code Online (Sandbox Code Playgroud)
返回受影响的ZERO行.也谷歌搜索,他们说把零写入报价将解决问题,但没有,任何帮助?这是每日进口.
编辑:列NUMER是INT(19)并包含已经的数据,如:
NUMER
----------
1203
12303
123403
1234503
...
Run Code Online (Sandbox Code Playgroud)
(现在填充了3到7位不同长度的数据)
mysql ×1