需求:
目标表:bs_user_info
将目标表的Email字段下的所有数据值修改为:user_name+@fly.com
1、创建临时表temporary,与bs_user_info表有相同的主键和user_name
create table temporary(
user_id int PRIMARY KEY,
user_name VARCHAR(100) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8
2、数据迁移:将bs_user_info 中说有数据的user_id、user_name 迁移到temporary表中。
insert into temporary(user_id,user_name)
select user_id,user_name from bs_user_info
3、字符串拼接函数:CONCAT()函数
CONCAT(str,str2,str3…) 可以将两个或者多个参数拼接在一起
注意事项:若str中有一个为null,那么拼接得到的字符串为null
select CONCAT(‘1’,‘+’,‘2’,NULL)str 得到的str为null
4、目标表字段的批量更新:
update bs_user_info t1 set t1.email =
(select CONCAT(user_name,‘@fly.com’) from temporary t2 WHERE t2.user_id = t1.user_id )