如何使用mysqli中的WHERE子句更新表列?

时间:2017-05-31 06:40:29

标签: mysqli

我有一张桌子postcode。它有一列postcode,包含4/5位整数(即66770,66670,3090,6660)。我想运行一个查询,该查询将0添加到包含4位数值的所有字段(即更改' 6660'到' 06660')。 我尝试了这个查询,但它说0 rows affected并且没有进行任何更改。

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

我做错了吗?

3 个答案:

答案 0 :(得分:2)

试试这个:UPDATE postcode SET postcode = REPLACE(postcode, N'____', 0);

这里我只需将4个字符的所有内容替换为0(有4个下划线)

答案 1 :(得分: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字段末尾有一些空格。

答案 2 :(得分:1)

答案是:

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