如何用织梦SQL查询ID并删除文章?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 织梦建站 正文

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

织梦sql语句查询id并删除文章
(图片来源网络,侵删)

⚠️ 重要安全警告:操作前务必备份数据库!

在执行任何删除操作之前,请务必备份数据据库,这是防止误操作导致数据丢失的唯一有效方法,你可以通过织梦后台的【系统】->【数据库备份/恢复】功能来备份数据据库。


操作步骤

第一步:登录织梦后台数据库管理工具

  1. 登录你的织梦CMS后台。
  2. 在顶部菜单栏中,找到并点击【系统】。
  3. 在下拉菜单中,选择【SQL命令工具】。

第二步:编写并执行SQL删除语句

在打开的“SQL命令工具”页面中,你会看到一个文本框,在这里输入你的SQL语句。


根据文章ID直接删除(最常用)

如果你已经知道要删除的文章的ID,这是最直接的方法。

SQL语句格式:

织梦sql语句查询id并删除文章
(图片来源网络,侵删)
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为 101520 的三篇文章。

DELETE FROM `#@_archives` WHERE id IN (10, 15, 20);

执行: 将上面的语句复制到SQL命令工具的文本框中,然后点击【查询】或【执行】按钮,如果执行成功,页面会提示你删除了多少条记录。

织梦sql语句查询id并删除文章
(图片来源网络,侵删)

先查询ID,再删除(推荐,更安全)

如果你不确定ID,或者想根据某些条件(如标题、关键字)找到文章,然后删除。强烈推荐分两步进行:先查询,再删除。

第2.1步:查询符合条件的文章ID

假设你想删除标题中包含“测试”的所有文章。

SQL查询语句:

SELECT id, title FROM `#@_archives` WHERE title LIKE '%测试%';

语句说明:

  • SELECT id, title FROM ...:查询并显示 idtitle 这两个字段的内容,方便你核对。
  • 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';

⚠️ 高级操作与注意事项

  1. 同时删除相关数据(非常重要!) 一个文章在织梦数据库中不是只存在一张表里的。#@_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,请根据实际情况调整
  2. 使用事务(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; 来撤销所有操作。

对于普通用户,最安全、最推荐的流程是:

  1. 备份数据库!
  2. 使用 SELECT 语句查询并确认要删除的文章ID。
  3. 使用 DELETE FROM ... WHERE id IN (...) 语句删除核心表数据。
  4. (可选但推荐)如果数据非常重要,手动或再次编写SQL语句删除其他关联表(addonarticle, arctiny 等)的数据。

请务必谨慎操作,避免误删重要内容。

-- 展开阅读全文 --
头像
织梦CMS后台为何无法自动更新补丁?
« 上一篇 2025-12-11
仿webqq织梦管理网站后台模板哪里下载?
下一篇 » 2025-12-11

相关文章

取消
微信二维码
支付宝二维码

目录[+]