当前位置: 首页 > 知识库问答 >
问题:

删除查询中找到的所有数据[重复]

潘驰
2023-03-14

我正在做一个数据库项目,为了理智起见,我想在测试其他特性时从数据库中删除所有问题数据。

SELECT Order_ID, Part_Number, COUNT(*)
FROM Temp_A
GROUP BY Order_ID, Part_Number
HAVING COUNT(*) > 1
DELETE FROM Temp_A
WHERE IN (/*MY QUERY*/)

共有1个答案

刁浩言
2023-03-14

一种方法是使用内部联接:

DELETE A
FROM Temp_A A
INNER JOIN (SELECT Order_ID, Part_Number, COUNT(*)
            FROM Temp_A
            GROUP BY Order_ID, Part_Number
            HAVING COUNT(*) > 1) B
    ON A.Order_ID = B.Order_ID
    AND A.Part_Number = B.Part_Number
;

如果使用的是SQL Server2005+,则可以使用CTE:

WITH CTE AS
(
    SELECT  *,
            N = COUNT(*) OVER(PARTITION BY OrderID, Part_Number)
    FROM Temp_A
)
DELETE FROM CTE
WHERE N > 1
;
 类似资料:
  • 我是JSP的新手,我正在尝试创建一个web界面,用户可以在该界面中输入他们想要删除的信息,并且该信息将在数据库表中删除。 在这里,他们应该输入和,然后应该删除具有两个指定ID的任何数据。但是,它不是从表中删除的。我有个例外 数组索引越界 下面是我的代码:

  • 当我要执行以下查询时: 我得到了错误: 消息102,级别15,状态1,第1行“,”附近的语法不正确。 编辑: 我要删除klantId 3。

  • 问题内容: 我想清除Google App Engine中特定种类的所有数据。做这个的最好方式是什么?我写了一个删除脚本(hack),但是由于有这么多数据,几百条记录之后超时了。 问题答案: Google的官方回答是,您必须删除多个请求中的多个块。您可以使用AJAX,meta refresh 或从脚本请求URL,直到没有剩余实体为止。

  • 问题内容: 这个问题已经在这里有了答案 : 在MySQL中删除重复的行 (25个答案) 3个月前关闭。 如何从MySQL表中删除所有重复数据? 例如,具有以下数据: 我会使用,如果它是一个查询。 我该怎么做才能只删除重复项并仅保留每个记录一个? 问题答案: 编辑者警告:此解决方案的计算效率低下,可能会降低大型表的连接。 注意:您 需要 首先在表的 测试副本 上执行此操作! 完成此操作后,我发现,除

  • 问题内容: 我有100个表,每个表40,000行。我想进入MySQL并从 所有* 表中删除 所有 行。 * …如果可能的话,用1条陈述? 我想保留数据库和表。 问题答案: 我不这么认为(但以前我做错了)。我倾向于做的是那些情况,这是一个两步过程。 如果您的DBMS具有命令行界面,则可以使用它来创建脚本来完成大部分工作,例如: 第一位只是简单地创建一个文件(或Windows下的文件),该文件包含所拥

  • 问题内容: 我不想键入所有表的名称以删除所有表。一个查询有可能吗? 问题答案: 使用 INFORMATION_SCHEMA.TABLES 视图获取表列表。在select语句中生成Drop脚本,并使用Dynamic SQL将其删除: 系统表 版本 注意: 如果在表之间定义了任何定义,则首先运行以下查询以 禁用数据库中所有存在的内容。 有关更多信息, 请在此处检查 。