都存储在 #@__archives 这个数据表的 body 字段中,我们的目标就是编写一条SQL语句,找到 body 字段中符合特定规则的文本,并将其替换为新的文本。

⚠️ 重要警告:操作前务必备份数据库!
在执行任何批量修改数据库的操作之前,请务必备份你的整个数据库,一旦操作失误,可能会导致数据无法恢复,你可以通过织梦后台的“系统” -> “数据库备份/恢复”功能来备份数据。
直接在后台执行SQL语句(推荐)
这是最直接、最快捷的方法,适合有一定SQL基础的用户。
- 登录织梦后台。
- 进入“系统” -> “SQL命令运行工具”。
- 在下方的“命令文本框”中,输入你的SQL替换语句。
- 点击“查询”或“运行”按钮执行。
SQL语句模板
UPDATE `#@__archives` SET `body` = REPLACE(`body`, '旧字符串', '新字符串');
语句解析:
UPDATE ... SET ...:标准的SQL更新语句结构。#@__archives:这是织梦的数据表前缀(默认是dede_)的占位符,织梦会自动替换成你实际的前缀。强烈建议使用#@__而不是直接写dede_,以防你的表前缀被修改过。body:存储文章内容的字段名。REPLACE():MySQL内置的字符串替换函数。'旧字符串':你想要被替换掉的文本。'新字符串':你想要替换成的新文本。
使用织梦的“内容替换”插件(更安全)
如果你对SQL不太熟悉,或者担心误操作,可以使用第三方插件,织梦市场上有一些专门用于内容替换的插件,它们通常有更友好的界面,并且可以预览替换结果,安全性更高。

操作步骤(以通用插件为例):
- 从织梦官方市场或可信的第三方网站下载“内容批量替换”或类似功能的插件。
- 在织梦后台“模块” -> “上传新模块”中安装该插件。
- 在后台找到该插件,进入其管理界面。
- 按照提示输入“查找内容”和“替换内容”,通常还可以指定栏目ID(只替换特定栏目下的文章)。
- 执行替换操作。
优点:
- 界面友好,无需手写SQL。
- 通常有“预览”功能,可以看到哪些文章会被修改。
- 更安全,不易出错。
SQL语句进阶用法与示例
示例1:替换一个简单的词语
假设你想把文章中所有的“织梦CMS”替换为“DedeCMS”。
UPDATE `#@__archives` SET `body` = REPLACE(`body`, '织梦CMS', 'DedeCMS');
示例2:替换带有特定HTML标签的内容
假设你想删除所有文章中的<span style="color:red;">这个红色标签(只删除标签,保留标签内的内容)。

UPDATE `#@__archives` SET `body` = REPLACE(`body`, '<span style="color:red;">', '');
示例3:删除所有超链接(只保留链接文本)
这是一个稍微复杂的例子,因为 注意: 这种方法无法处理带属性的 如果你想只替换“产品介绍”这个栏目(假设栏目ID为5)下的文章内容,可以在SQL语句中加入 如果你想批量修改文章的摘要,只需要把REPLACE无法处理嵌套标签,这个例子只能处理最简单的<a>
UPDATE `#@__archives` SET `body` = REPLACE(`body`, '<a href="http://www.example.com">', '');
UPDATE `#@__archives` SET `body` = REPLACE(`body`, '</a>', '');
<a>标签(如<a href="..." title="..." >),也无法处理换行和空格,对于复杂的HTML操作,建议使用专业的HTML解析工具或编写PHP脚本。示例4:只替换特定栏目下的文章内容
typeid条件。UPDATE `#@__archives` SET `body` = REPLACE(`body`, '旧产品名称', '新产品名称') WHERE `typeid` = 5;
示例5:批量替换文章摘要(
description字段)body字段换成description字段即可。UPDATE `#@__archives` SET `description` = REPLACE(`description`, '旧的摘要', '新的摘要');
常见问题与注意事项
REPLACE函数是区分大小写的。REPLACE('abc', 'A', 'X')不会进行任何替换,如果需要进行不区分大小写的替换,需要使用更复杂的函数或脚本。
... REPLACE(body, 'Tom's book', ...) -> 语法错误。... REPLACE(body, 'Tom''s book', ...) -> 正确。UPDATE语句可能会对服务器造成较大压力,导致网站暂时变慢或无响应,建议在网站访问量较低的时段(如凌晨)进行操作。
UPDATE ... SET ... REPLACE(...) SQL语句,在后台“SQL命令运行工具”中执行。
