2016-06-13 69 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