服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - mysql部分替换sql语句分享

mysql部分替换sql语句分享

2019-11-27 16:54MYSQL教程网 Mysql

有时候需要对mysql中的内容进行部分替换,那么可以参考下面的文章。

将cdb_pms表subject字段中的Welcom to替换成 欢迎光临 

复制代码代码如下:

UPDATE `cdb_pms` 
SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临') 
WHERE INSTR(`subject`,'Welcome to') > 0 


替换cdb_posts表的message字段,将“viewthread.php?tid=3989”替换成“viewthread.php?tid=16546” 

复制代码代码如下:

UPDATE `cdb_posts` 
SET `message`= REPLACE(`message`, 'viewthread.php?tid=3989', 'viewthread.php?tid=16546') 
WHERE INSTR(`message`,'viewthread.php?tid=3989') > 0 ; 


删除所有的空格 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = TRIM(`pro_pub_time`) 


删除所有饱含'['或者']'或者'.'的字符 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '[','') WHERE INSTR(`pro_pub_time`,'[') > 0 
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ']','') WHERE INSTR(`pro_pub_time`,']') > 0 
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '.','-') WHERE INSTR(`pro_pub_time`,'.') > 0 


替换所有含中文'-'的为英文'-' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '-','-') WHERE INSTR(`pro_pub_time`,'-') > 0 


将所有的年月都替换成'-' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '年','-') WHERE INSTR(`pro_pub_time`,'年') > 0 
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '月','-') WHERE INSTR(`pro_pub_time`,'月') > 0 


将所有'2005-04-'这种类型的替换成'2005-04-01' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01') WHERE SUBSTRING_INDEX( `pro_pub_time`, '-', -1) = '' AND LENGTH(`pro_pub_time`) > 0 AND LENGTH(`pro_pub_time`) > 5 


将所有'2005-'这种类型替换成'2005-01-01' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) = 5 


将所有 饱含'-',但是位数小于8的改成追加'-01' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) < 8 


将所有'2005'这样的改成'2005-01-01' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = CONCAT(`pro_pub_time`,'-01-01') WHERE INSTR(`pro_pub_time`,'-') = 0 AND LENGTH(`pro_pub_time`) = 4 


最后将所有'2005-01-01'格式化成'2005年01月' 

复制代码代码如下:

UPDATE `es_product` SET `pro_pub_time` = DATE_FORMAT(`pro_pub_time`,'%Y年%m月') WHERE INSTR(`pro_pub_time`,'-') > 0 

延伸 · 阅读

精彩推荐