在进行任何数据库操作之前,务必备份数据库! 这是最重要的一步,可以防止误操作导致网站数据丢失。

下面我将为您提供几种安全、有效的批量替换方法,从最推荐到备用方案排列。
使用DedeCMS后台自带的SQL命令行工具(最推荐、最安全)
这是DedeCMS官方提供的功能,操作界面友好,且对SQL语句有一定的封装,适合大多数用户。
适用场景:替换文章内容、标题、描述、自定义字段等所有存储在数据库文本字段中的内容。
操作步骤:

-
登录DedeCMS后台:使用管理员账号登录您的网站后台。
-
进入SQL命令工具:
- 在顶部菜单栏找到 “系统” -> “SQL命令行工具”。
- 点击进入,您会看到一个文本框和一些选项。
-
编写SQL替换语句:
- 在文本框中输入以下格式的SQL语句:
UPDATE `表名` SET `字段名` = REPLACE(`字段名`, '旧内容', '新内容');
- 语句解释:
UPDATE:SQL更新命令。`表名`:需要操作的数据库表名,注意表名前后的反引号`,这是为了避免与MySQL的保留字冲突。SET:设置字段值。`字段名`:需要替换内容的字段名,同样需要反引号。REPLACE():MySQL内置的字符串替换函数。':您想要被替换掉的内容。':您希望替换成的新内容。
- 在文本框中输入以下格式的SQL语句:
-
常用替换示例:
(图片来源网络,侵删)-
示例1:批量更换网站域名(文章内容中的链接)
-
旧域名:
http://www.old-domain.com -
新域名:
https://www.new-domain.com -
涉及表:
dede_archives(文章主表),dede_addonarticle(文章附加表),dede_arctiny(文章微表) -
SQL语句:
-- 更新文章主表中的 body 字段 UPDATE `dede_archives` SET `body` = REPLACE(`body`, 'http://www.old-domain.com', 'https://www.new-domain.com'); -- 更新文章附加表中的 body 字段 UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, 'http://www.old-domain.com', 'https://www.new-domain.com'); -- 如果描述中也包含域名,可以一并替换 UPDATE `dede_archives` SET `description` = REPLACE(`description`, 'http://www.old-domain.com', 'https://www.new-domain.com');
-
提示主要存在
dede_addonarticle表的body字段中,但为了保险,通常也会更新dede_archives的body字段。
-
-
示例2:批量更换文章中的图片路径
- 旧路径:
/uploads/ - 新路径:
/new-uploads/ - SQL语句:
UPDATE `dede_addonarticle` SET `body` = REPLACE(`body`, '/uploads/', '/new-uploads/');
- 旧路径:
-
示例3:批量替换文章标题中的关键词
- 旧关键词:
“错误关键词” - 新关键词:
“正确关键词” - SQL语句:
UPDATE `dede_archives` SET `title` = REPLACE(`title`, '“错误关键词”', '“正确关键词”');
- 旧关键词:
-
-
执行操作:
- 确认SQL语句无误后,点击 “提交查询” 按钮。
- 系统会执行SQL命令,并返回受影响的行数,如果看到类似
记录数: 100的提示,说明替换成功。
使用phpMyAdmin(功能最强大,适合高级用户)
如果您对SQL非常熟悉,或者需要更复杂的批量操作,可以直接登录服务器的数据库管理工具phpMyAdmin。
操作步骤:
-
登录phpMyAdmin:通过您的虚拟主机控制面板(如cPanel、Plesk)或独立服务器环境登录phpMyAdmin。
-
选择数据库:在左侧列表中选择您的DedeCMS数据库名。
-
执行SQL:
- 点击顶部菜单栏的 “SQL” 选项卡。
- 在下方的文本框中,粘贴和方法一完全相同的SQL语句。
UPDATE `表名` SET `字段名` = REPLACE(`字段名`, '旧内容', '新内容');
- 点击 “执行” 按钮。
优点:
- 功能强大,除了替换,还可以进行删除、修改结构等任何数据库操作。
- 可以直接浏览和编辑数据,方便预览和验证。
缺点:
- 对新手不友好,误操作风险高。
使用DedeCMS的“文档关键词替换”插件(特定场景)
DedeCMS自带了一个专门用于文章内容关键词替换的功能,它更侧重于SEO和内容修正。
适用场景:批量替换文章内容(body字段)中的特定关键词。
操作步骤:
-
登录DedeCMS后台。
-
进入关键词替换功能:
- 在顶部菜单栏找到 “核心” -> 关键词替换”。
-
设置替换规则:
- 输入您要查找的“旧内容”。
- 替换:输入您希望替换成的“新内容”。
- 选择栏目:您可以选择“所有栏目”或指定特定栏目,这样可以精确控制替换范围。
- 替换范围:默认就是“文章内容”,也就是
dede_addonarticle表的body字段。
-
执行替换:
- 点击 “开始执行” 按钮。
- 系统会列出所有包含该关键词的文章,并让您确认是否替换,确认后,操作完成。
优点:
- 操作非常简单,图形化界面。
- 可以按栏目筛选,非常灵活。
缺点:
- 只能替换文章内容(body字段),无法替换标题、关键词、描述等其他字段。
重要注意事项
-
备份!备份!备份! 再次强调,操作前务必备份数据库,您可以在phpMyAdmin中“导出”整个数据库,保存为一个
.sql文件。 -
精确查找时,尽量使用唯一且精确的关键词,避免使用过于宽泛的词,否则可能会误替换,替换
old-domain.com时,最好使用http://www.old-domain.com或https://old-domain.com这样的完整格式,以防替换到其他无关的字符串。 -
表前缀问题:如果您在安装DedeCMS时修改了默认的表前缀(默认是
dede_),那么在编写SQL语句时,请务必使用您自己修改后的表前缀。 -
操作范围:清楚您要修改的数据在哪个表的哪个字段里,常见的DedeCMS表和字段:
- /关键词:
dede_archives表的title,description,keywords字段。 - 文章正文:
dede_addonarticle表的body字段(普通文章)或其他模型附加表的body字段。 dede_arctype表的content字段。- 网站配置:
dede_sysconfig表。
- /关键词:
-
测试:如果数据量很大,可以先在一条或几条测试文章上操作,确认效果无误后再进行全站替换。
| 方法 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 后台SQL工具 | 安全、直观、官方支持 | 需要了解基本SQL语法 | 绝大多数情况下的首选,特别是替换标题、内容、路径等 |
| phpMyAdmin | 功能最强大、灵活 | 风险高,需要SQL知识 | 高级用户,或需要进行复杂、多表关联操作时 |
| 关键词替换 | 操作简单、按栏目筛选 | 仅限文章内容 | 快速修正文章内容中的特定词汇或错误链接 |
对于99%的DedeCMS用户来说,方法一(后台SQL命令行工具) 是最安全、最有效、最应该掌握的批量替换方法。
