mysql替换语句之字段值替换

本文详细介绍了如何使用SQL语句对多个数据库表进行批量更新操作,包括修改字段内容、删除空格、移除特定字符、替换特殊字符、格式化日期等。通过这些操作,可以有效地维护和清理数据库中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将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
 
### 如何在 MySQL 中执行替换操作 在 MySQL 中,`REPLACE` 函数用于在一个字符串中查找并替换成另一个字符串。此函数对大小写敏感。如果要将字符串 `Hello World` 中的 `World` 替换为 `MySQL`,可以使用如下 SQL 语句: ```sql SELECT REPLACE('Hello World', 'World', 'MySQL') AS NewString; ``` 上述命令会返回一个新的字符串 `Hello MySQL`[^1]。 对于那些希望忽略大小写的场景,则需要先统一转换成相同的大写或小写字态再做处理;或者采用其他编程逻辑来实现需求外的需求。然而,在标准 SQL 查询里,直接通过参数传递给 `REPLACE()` 来完成无视大小写的全局替换并不是内置支持的功能。 为了确保替换能够成功,建议确认源字符串和目标子串之间的大小写完全一致。如果不关心大小写差异,可以在应用程序层面进行预处理,比如全部转为大写或小写后再调用 `REPLACE` 函数。 #### 示例代码 下面是一个完整的例子,展示了如何利用 `REPLACE` 函数来进行简单的字符替换工作: ```sql -- 创建测试 CREATE TABLE test_strings ( id INT AUTO_INCREMENT PRIMARY KEY, original_string VARCHAR(255), replaced_string VARCHAR(255) ); -- 插入一些初始数据 INSERT INTO test_strings (original_string, replaced_string) VALUES ('Hello World', ''); -- 更新记录中的字段,使用 REPLACE 进行替换 UPDATE test_strings SET replaced_string = REPLACE(original_string, 'World', 'MySQL'); -- 查看更新后的结果 SELECT * FROM test_strings; ``` 这段脚本创建了一个名为 `test_strings` 的格,并向其中插入了一条含有待替换文本的数据。接着,通过一条 UPDATE 命令实现了特定单词的替换,并最终查询显示修改过的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值