mysql replace替換某字段的值


由於最近我們的一個網站回購了一個很好的域名所有與之相關的項目都需要修改;

今天接到一個任務將我們會員開通的個人網站的二級域名換成新域名,看了一下庫已開通的還很少才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搞定......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM