下面我将为你提供详细的步骤、SQL语句以及非常重要的安全提示。

⚠️ 重要安全警告:操作前务必备份数据库!
在执行任何删除操作之前,请务必备份数据据库,这是防止误操作导致数据丢失的唯一有效方法,你可以通过织梦后台的【系统】->【数据库备份/恢复】功能来备份数据据库。
操作步骤
第一步:登录织梦后台数据库管理工具
- 登录你的织梦CMS后台。
- 在顶部菜单栏中,找到并点击【系统】。
- 在下拉菜单中,选择【SQL命令工具】。
第二步:编写并执行SQL删除语句
在打开的“SQL命令工具”页面中,你会看到一个文本框,在这里输入你的SQL语句。
根据文章ID直接删除(最常用)
如果你已经知道要删除的文章的ID,这是最直接的方法。
SQL语句格式:

DELETE FROM `#@_archives` WHERE id IN (ID1, ID2, ID3, ...);
语句说明:
DELETE FROM ... WHERE ...:这是标准的SQL删除语句结构。#@_archives:这是织梦中存放文章核心数据的表名。#@_是织梦的前缀,如果你的数据库表前缀不是dede_,请替换成你自己的前缀(例如#@_archives可能对应dede_archives)。id:这是文章ID在表中的字段名。IN (...):这是一个范围操作符,表示删除ID括号内任意一个的所有记录,用逗号分隔多个ID。(ID1, ID2, ID3, ...):你需要替换成实际的、要删除的文章ID,用英文逗号隔开。
示例:
假设你要删除ID为 10、15 和 20 的三篇文章。
DELETE FROM `#@_archives` WHERE id IN (10, 15, 20);
执行: 将上面的语句复制到SQL命令工具的文本框中,然后点击【查询】或【执行】按钮,如果执行成功,页面会提示你删除了多少条记录。

先查询ID,再删除(推荐,更安全)
如果你不确定ID,或者想根据某些条件(如标题、关键字)找到文章,然后删除。强烈推荐分两步进行:先查询,再删除。
第2.1步:查询符合条件的文章ID
假设你想删除标题中包含“测试”的所有文章。
SQL查询语句:
SELECT id, title FROM `#@_archives` WHERE title LIKE '%测试%';
语句说明:
SELECT id, title FROM ...:查询并显示id和title这两个字段的内容,方便你核对。WHERE title LIKE '%测试%':这是查询条件。title:在文章标题字段中查找。LIKE:模糊匹配。'%测试%':匹配包含“测试”二字的标题,是通配符,代表任意数量的任意字符。
执行: 执行这个查询语句,你会看到一个列表,显示了所有符合条件的文章的ID和标题。请仔细核对这些是不是你真正想删除的文章!
第2.2步:根据查询结果执行删除
假设上一步查询出来的ID是 100, 101, 102,现在你就可以使用场景一中的方法来删除了。
DELETE FROM `#@_archives` WHERE id IN (100, 101, 102);
根据栏目ID删除该栏目下的所有文章
如果你想删除整个栏目下的所有文章,可以根据栏目ID来操作。
SQL语句格式:
DELETE FROM `#@_archives` WHERE typeid = '栏目ID';
示例:
删除栏目ID为 5 的所有文章。
DELETE FROM `#@_archives` WHERE typeid = '5';
⚠️ 高级操作与注意事项
-
同时删除相关数据(非常重要!) 一个文章在织梦数据库中不是只存在一张表里的。
#@_archives表只存了文章的核心信息,删除后,你还需要清理其他相关表的数据,否则会产生“数据垃圾”,影响网站性能和稳定性。主要关联表:
#@_addonarticle:文章附加表,存放文章的详细内容(如body字段)。#@_arctiny:文章简略表。#@_taglist:文章标签关联表。#@_search:全站搜索索引表。
完整的、安全的删除流程(以删除ID为10,15,20的文章为例):
-- 第1步:删除核心表数据 DELETE FROM `#@_archives` WHERE id IN (10, 15, 20); -- 第2步:删除附加表数据 DELETE FROM `#@_addonarticle` WHERE aid IN (10, 15, 20); -- 第3步:删除简略表数据 DELETE FROM `#@_arctiny` WHERE id IN (10, 15, 20); -- 第4步:删除标签关联数据 DELETE FROM `#@_taglist` WHERE aid IN (10, 15, 20); -- 第5步:删除搜索索引数据 DELETE FROM `#@_search` WHERE typeid IN (10, 15, 20); -- 注意:search表可能用typeid关联,也可能用aid,请根据实际情况调整
-
使用事务(Transaction)保证数据一致性 为了防止在删除过程中出现意外(如执行到一半中断),导致数据表不一致,可以将以上多条
DELETE语句放在一个事务中执行,如果中途出错,可以回滚,所有操作都不会生效。在织梦的SQL工具中,事务的写法如下:
START TRANSACTION; -- 你的所有DELETE语句 DELETE FROM `#@_archives` WHERE id IN (10, 15, 20); DELETE FROM `#@_addonarticle` WHERE aid IN (10, 15, 20); -- ... 其他删除语句 -- 如果所有语句都成功,则提交 COMMIT;
如果执行过程中出错,可以执行
ROLLBACK;来撤销所有操作。
对于普通用户,最安全、最推荐的流程是:
- 备份数据库!
- 使用
SELECT语句查询并确认要删除的文章ID。 - 使用
DELETE FROM ... WHERE id IN (...)语句删除核心表数据。 - (可选但推荐)如果数据非常重要,手动或再次编写SQL语句删除其他关联表(
addonarticle,arctiny等)的数据。
请务必谨慎操作,避免误删重要内容。
