2016-06-13 42 views
0

是否可以通过SQL将额外的字符添加到数据库中的现有数据中?也就是说,我有这些行,我需要在zip_codes上添加额外的0。如何动态编辑mysql数据行?

id | state_abbr | zip_code 
16993 | MA   | 1001 
16994 | MA   | 1002 
16995 | MA   | 1003 

我想将它更改为:

id | state_abbr | zip_code 
16993 | MA   | 01001 
16994 | MA   | 01002 
16995 | MA   | 01003 
+0

什么是ZIP_CODE的数据类型? –

+0

之前,它是整数,但我把它改成字符串/ varchar – Hitori

+0

然后检查我发布的答案..应该解决您的问题.. –

回答

1

当且仅当列“ZIP_CODE”的数据类型为varchar(字符串),则可以使用下面的SQL更新值您的需要:

UPDATE <tablename> SET zip_code = CONCAT('0',zip_code) 
WHERE CHAR_LENGTH(zip_code) = 4 
OR 
(zip_code LIKE '0%' AND CHAR_LENGTH(zip_code) < 5) 

我相信最后的OR条件不会有所作为,但如果这是适合您的需求..

+0

但如果我这样做,它会影响所有其他正确的zip_codes? – Hitori

+0

你想在代码前加'0'吗?给我的条件.. –

+0

我想给所有只有4位数的zip_codes,或所有以'0'开头的美国zip_codes加上'0',所有正确的zip_codes都是5位数。 – Hitori