我有一张桌子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;
我做错了吗?
答案 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;