Mysql 如何使用WHERE子句更新表列?
我有一张表Mysql 如何使用WHERE子句更新表列?,mysql,Mysql,我有一张表邮政编码。它有一列postcode,其中包含4/5位整数(即66770、66670、3090、6660)。我想运行一个查询,将0前置到所有包含4位数值的字段(即将“6660”更改为“06660”)。 我尝试了这个查询,但它显示0行受影响,并且没有进行任何更改 UPDATE postcode SET postcode = Concat('0', postcode) WHERE CHAR_LENGTH(postcode) = 4; 我做错什么了吗?试试这个:更新邮政编码SET postc
邮政编码。它有一列postcode
,其中包含4/5位整数(即66770、66670、3090、6660)。我想运行一个查询,将0
前置到所有包含4位数值的字段(即将“6660”更改为“06660”)。
我尝试了这个查询,但它显示0行受影响
,并且没有进行任何更改
UPDATE postcode SET postcode = Concat('0', postcode) WHERE CHAR_LENGTH(postcode) = 4;
我做错什么了吗?试试这个:更新邮政编码SET postcode=REPLACE(邮政编码,N''uuuuuuuu',0)代码>
在这里,我只需将所有内容替换为4个字符到0(有4个下划线)尝试以下操作:更新邮政编码集postcode=replace(邮政编码,N''uuuuuu',0)代码>
在这里,我只是将所有内容替换为4个字符到0(有4个下划线)如果所有记录都是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()
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
字段末尾有一些空白。答案是:
UPDATE postcode set postcode = CONCAT('0', postcode) where LENGTH(postcode)=4;
答案是:
UPDATE postcode set postcode = CONCAT('0', postcode) where LENGTH(postcode)=4;
您的第一个答案附加了0
而不是前缀。当我将RPAD
更改为LPAD
时,结果仍然是一样的,什么也没有发生。您的第一个答案附加了0
而不是前缀。当我将RPAD
更改为LPAD
时,结果仍然是一样的,什么也没有发生。