我有发票号码表。指南说数字应该有 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 位不同长度的数据)