在Mysql DB列中的当前值之前插入数字0

时间:2019-02-03 14:13:01

标签: mysql sql

我有一个MySQL数据库,我上载用于填充数据库的信息来自CSV文件。 CSV文件具有数字值,例如9875637892。由于CSV中有2000多行,因此前导0丢失了。由于明显的原因,我无法遍历2000年并加上记录以添加前导零,我需要在每一行中都包含09875637892。

有没有一种方法可以运行SQL字符串以从SQL在9875637892前面添加0?

2 个答案:

答案 0 :(得分:2)

数值不带前导零。如果CSV文件中的值匹配,则将数据类型更改为字符串并重新导入数据。

如果不可能,则进行更改:

alter table t modify col varchar(255);

update t
    set col = concat('0', col);

如果该值已经是字符串,则只需运行update

答案 1 :(得分:2)

L(-eft)PAD似乎是一个合适的解决方案:

-- simple test:
SELECT LPAD('9875637892', 11, '0');

===========================
Number of Records: 1
===========================
LPAD('9875637892', 11, '0')
---------------------------
09875637892

-- update table:
UPDATE yourtable
SET yourcolumn = LPAD(yourcolumn, 11, '0');

(假设最多填充11位数字)