2017-05-31 55 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'时,结果仍然是一样的,没有任何反应。 –

相关问题