You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何替换包含反斜杠的字符串?

搞定MySQL含反斜杠的href字符串替换问题

嘿,我之前也踩过这个转义的坑,太懂你这种明明语句逻辑对,但就是匹配不到内容的郁闷了!咱们来一步步解决它:

为啥你的原语句失效?

MySQL里反斜杠(\)是默认的转义字符,这就导致你写在SQL里的href=\\"example.com\\",会被MySQL先解析成href="example.com"——反斜杠直接被吃掉了!自然匹配不到那些存储时带反斜杠的内容。

正确的替换姿势

你需要对反斜杠做双重转义:用\\\\来表示存储内容里的单个\。这样SQL解析时,\\\\会先转换成\\,REPLACE函数就能准确匹配到目标字符串里的反斜杠了。

试试这条语句:

UPDATE `articles` 
SET `text` = REPLACE(`text`, 'href=\\\\\"example.com\\\\\"', 'href=\\\\\"https://example.com\\\\\"') 
WHERE `text` LIKE '%href=\\\\\"example.com\\\\\"%';

如果你用的是MySQL 8.0.17及以上版本,还有更省心的写法——用raw字符串字面量(前缀加r),这样不用手动折腾双重转义,直接写原始格式就行:

UPDATE `articles` 
SET `text` = REPLACE(`text`, r'href=\"example.com\"', r'href=\"https://example.com\"') 
WHERE `text` LIKE r'%href=\"example.com\"%';

先验证再修改,避免踩坑

在执行UPDATE之前,建议先跑个查询确认能匹配到目标记录,免得误操作:

-- 普通版本
SELECT `text` FROM `articles` WHERE `text` LIKE '%href=\\\\\"example.com\\\\\"%';
-- 或者raw字符串版本
SELECT `text` FROM `articles` WHERE `text` LIKE r'%href=\"example.com\"%';

确认能查到要修改的记录后,再执行UPDATE更稳妥。

额外小提醒

执行更新前最好备份一下表数据,或者用事务包裹操作,万一结果不对还能回滚:

START TRANSACTION;
-- 执行你的UPDATE语句
SELECT `text` FROM `articles` WHERE `text` LIKE '%href=\\\\\"example.com\\\\\"%'; -- 检查修改结果
-- 没问题就提交:COMMIT; 不对就回滚:ROLLBACK;

内容的提问来源于stack exchange,提问作者Yuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:01:25