2017-05-31 42 views
1

我有一個表postcode。它具有包含4/5數字整數(即66770,66670,3090,6660)的列postcode。我想運行一個查詢,它將所有包含4位數字的字段(即,將'6660'改爲'06660')的字段0。 我試過這個查詢,但它說0 rows affected並沒有更改。如何使用mysqli中的WHERE子句更新表列?

UPDATE postcode SET postcode = Concat('0', postcode) WHERE CHAR_LENGTH(postcode) = 4; 

我做錯了什麼?

回答

0

答案是:

UPDATE postcode set postcode = CONCAT('0', postcode) where LENGTH(postcode)=4; 
1

試試這個:UPDATE postcode SET postcode = REPLACE(postcode, N'____', 0);

在這裏,我只是用4個字符全部替換爲0(有4個下劃線)

1

如果所有的記錄都是4或5,你不需要在where子句和

UPDATE postcode SET postcode = RPAD(TRIM(postcode), 5, '0') 

應該做的工作。但是,如果你有3個數字記錄,你不想更新這些你需要添加到哪裏過濾

UPDATE postcode 
SET postcode = LPAD(TRIM(postcode), 5, '0') 
WHERE CHAR_LENGTH(TRIM(postcode) = 4; 
我使用 TRIM()萬一 postcode場不得不在最後一些空的空間

+0

你的第一個答案追加'0'沒有預先考慮。當我將'RPAD'改爲'LPAD'時,結果仍然是一樣的,沒有任何反應。 –