在Navicat 中给Mysql中的某字段添加前缀00

时间:2023-12-01 19:26:14

第一次分享心得,希望大家多多关注。

我遇到的情况是这样的,在Navicat中某表的varchar字段内容长度不够5的在内容前面添加‘0’;如字段内容是 101 我就要改成00101;

其中有2个难点:1.判断字段内容的长度(我认知不够的原因) 2.给字段内容添加前缀;

之前的错误sql是

update base_sf set diy_code=‘00’+diy_code

where pk in (select pk from base_sf where LENGTH(diy_code)=3)

这样在Navicat中diy_code被当成数值,所以一直不能成功。

正确的sql是

update base_sf set diy_code=concat('0',diy_code)

where pk in (select * from (select pk from base_sf where LENGTH(diy_code)=4) tmp)