由于最近我们的一个网站回购了一个很好的域名所有与之相关的项目都需要修改;
今天接到一个任务将我们会员开通的个人网站的二级域名换成新域名,看了一下库已开通的还很少才2w多,且要换的和之前库中的数据很规则形如 aaa.123abc.com要换成aaa.123.net
之前遇到这样的事情我会写一个php脚本去跑这张表:在php程序中做好修改然后再入库(实际上目前我遇到的导数据除了直接从数据源导入到新库中,我直接使用navicat导入导出外其他均使用这种方式跑库,还写不出DBA能写出的复杂sql,用冬哥的话说一步一步来,先最快解决问题再去学习使用新技术)。
这个问题中我想到了曾经遇到过的mysql函数replace应该能达到目的,先google一下:
replace(object,search,replace)
把object中出现search的全部替换为replace
select replace('www.163.com','w','Ww')--->WwWwWw.163.com
例:把表table中的name字段中的aa替换为bb
update table set name=replace(name,'aa','bb')
正和我意,我的sql出来了:
UPDATE `space_domain` SET `domain`=replace(domain,'123abc.com','123.net');
先备份一下该表(使用mysqldump还是navicat或者pma自己选择吧,但是要注意如果库很大还是让运维组的同事在服务器上备份吧尤其是对于已上线的项目,但是一定要先想想备份即使你已开了binlog),复制粘贴一下上边的sql搞定......