我有一个MySQL数据库,我上载用于填充数据库的信息来自CSV文件。 CSV文件具有数字值,例如9875637892。由于CSV中有2000多行,因此前导0丢失了。由于明显的原因,我无法遍历2000年并加上记录以添加前导零,我需要在每一行中都包含09875637892。
有没有一种方法可以运行SQL字符串以从SQL在9875637892前面添加0?
答案 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位数字)