- 准备工作:备份数据库(至关重要!)
- 使用织梦后台的“批量维护”功能(推荐,最安全)
- 使用SQL命令直接操作数据库(功能最强大,需谨慎)
第一步:准备工作 - 备份数据库(重中之重!)
在进行任何批量替换操作之前,务必备份数据库!这是防止操作失误导致网站数据损坏的唯一保障。

(图片来源网络,侵删)
如何备份数据库?
- 登录你的网站主机控制面板(如cPanel、宝塔面板等)。
- 找到“数据库”或“phpMyAdmin”等相关工具。
- 选择你的织梦数据库。
- 点击“导出”或“备份数据库”,选择“快速”或“自定义”格式,通常选择“SQL”格式。
- 下载备份文件到你的本地电脑,妥善保存。
第二步:方法一 - 使用织梦后台的“批量维护”功能(推荐)
这是织梦内置的功能,操作简单,安全性高,适合大多数常规替换需求。
适用场景:替换文章标题、文章内容、文章来源、作者等表单字段中的文本。
操作步骤:

(图片来源网络,侵删)
-
登录织梦后台:使用你的管理员账号登录
你的域名/dede/。 -
找到批量维护工具:
- 在后台左侧菜单栏中,找到 “系统” -> “SQL命令行工具”。
- 点击进入后,你会看到一个文本框,下面有一个 “批量维护” 的按钮。
-
设置替换参数:
- 选择表:从下拉菜单中选择你要操作的数据库表,常见的表有:
dede_archives:文章主表,存放文章标题、发布时间、来源、作者等信息。dede_addonarticle:文章附加表,存放文章正文内容。dede_arctype:栏目表,存放栏目名称等信息。dede_soft:软件表,如果网站有软件下载模块。- ...根据你的需要选择。
- 替换字段:选择你想要在其中进行文本替换的“字段名”。
- 在
dede_archives表中,可以选择title(标题)、source(来源)、writer(作者)。 - 在
dede_addonarticle表中,必须选择body(文章内容)。
- 在
- 请输入要替换的关键字:输入你想要被替换的旧文本。
- 请输入替换后的内容:输入你想要替换成的新文本。
- 选择表:从下拉菜单中选择你要操作的数据库表,常见的表有:
-
执行替换:
(图片来源网络,侵删)- 确认所有参数设置正确后,点击 “批量维护” 按钮。
- 系统会弹出一个确认框,再次提醒你操作的风险,确认无误后,点击“确定”。
- 系统会开始执行替换,并显示成功替换的记录数。
优点:
- 图形化界面,操作直观,无需懂SQL。
- 内部有安全机制,相对不容易出错。
缺点:
- 对于超大表(如文章内容表),可能会因为PHP执行时间限制而超时失败。
- 功能相对单一,无法进行复杂的条件替换。
第三步:方法二 - 使用SQL命令直接操作数据库(功能强大,需谨慎)
当“批量维护”功能无法满足需求时(例如需要根据条件替换,或处理超大表),可以直接在数据库中执行SQL UPDATE 语句。此方法风险极高,请务必在备份数据库后操作!
适用场景:
- 需要更复杂的替换逻辑(例如只在特定栏目下替换)。
- 替换超大表内容,避免PHP超时。
- 替织梦系统配置(如网站域名)。
- 替换特殊字段,如文章内容中的图片路径。
操作步骤:
-
登录phpMyAdmin:
- 通过你的主机控制面板进入phpMyAdmin。
- 选择你的织梦数据库。
-
执行SQL命令:
- 点击顶部的 “SQL” 选项卡。
- 在下方的文本框中输入你的SQL语句。
-
常用SQL替换语句模板:
模板:
UPDATE `表名` SET `字段名` = REPLACE(`字段名`, '旧内容', '新内容') WHERE [可选的条件];
UPDATE:SQL更新命令。表名:要操作的数据库表(如dede_archives)。SET:设置要更新的字段。REPLACE():MySQL内置的字符串替换函数。WHERE:可选的条件,用于限定只更新符合特定条件的记录。如果不加WHERE,将更新整个表的所有记录!
SQL替换实战案例
案例1:批量更换网站域名
需求:将文章内容中所有 http://www.old-domain.com/ 替换为 https://www.new-domain.com/。
UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, 'http://www.old-domain.com/', 'https://www.new-domain.com/');
注意:如果文章内容是存放在缓存或者附件表中,可能需要额外操作。
案例2:批量修改文章来源 需求:将所有文章来源为“转载”的,修改为“原创”。
UPDATE `dede_archives` SET `source` = '原创' WHERE `source` = '转载';
这里使用了WHERE条件,只更新来源为“转载”的文章,更安全。
案例3:批量修正错别字 需求:将所有文章标题中的“织梦”错误写法“之梦”修正过来。
UPDATE `dede_archives` SET `title` = REPLACE(`title`, '之梦', '织梦');
案例4:仅替换特定栏目下的内容 需求:只在ID为5的栏目(通常是“公司新闻”)中,将“联系我们”替换为“欢迎联系我们”。
UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '联系我们', '欢迎联系我们') WHERE `typeid` = 5;
typeid 是栏目ID字段,你可以在 dede_arctype 表中查到。
案例5:替换文章缩略图路径 需求:将旧域名路径的缩略图更换为新域名。
UPDATE `dede_archives` SET `litpic` = REPLACE(`litpic`, 'http://old-domain.com/uploads/', 'https://new-domain.com/uploads/');
重要注意事项
- 备份!备份!备份! 再次强调,操作前必须备份数据库。
- 测试环境先行:如果可能,先在本地测试环境或网站测试目录下进行操作,确认无误后再应用到正式环境。
- 仔细检查SQL语句:在执行SQL前,反复检查表名、字段名、旧内容、新内容是否正确,一个字符的错误都可能导致灾难性后果。
- 分批处理大数据量:如果表非常大(如几十万篇文章),直接执行整个表的替换可能会导致数据库服务器卡顿甚至锁表,可以考虑按栏目ID(
typeid)或发布时间(senddate)分批处理,-- 先处理ID 1-1000的栏目 UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '旧内容', '新内容') WHERE `typeid` BETWEEN 1 AND 1000;
- 操作后检查:执行完毕后,去网站前台随机抽查几篇文章,检查替换结果是否正确,有无乱码或异常。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 后台批量维护 | 操作简单,安全,无需懂SQL | 可能因PHP超时失败,功能单一 | 常规的字段文本替换,如标题、来源、作者等 |
| SQL命令 | 功能强大,灵活,可处理大数据,支持条件判断 | 风险高,需要懂SQL语法,易出错 | 复杂条件替换、替换系统配置、处理超大表 |
对于绝大多数用户,优先推荐使用方法一(后台批量维护),只有在方法一无法解决问题时,才在确保已备份数据库的前提下,谨慎使用方法二(SQL命令)。
