如果其中一个条目符合特定条件,则删除组的所有条目

时间:2017-10-03 09:45:31

标签: mysql sql

如果该组中的一个条目与该条件匹配,我实际上想要删除与组相关的所有行(在group by子句中)。 现在我运行的查询实际上是一种元组匹配,这是超级慢的。

SELECT *
FROM Table
WHERE (column1, column2, column3) not in 
       ((SELECT column1, column2, column3
         FROM Table
         WHERE column4 like 'abcd'))

1 个答案:

答案 0 :(得分:1)

您可以计算要排除的"行的数量"每个组,并使用HAVING子句排除包含它们的组,如:

  SELECT whatever, SUM(criterion_for_a_single_line_to_be_excluded) as number_of_lines_to_exclude
    FROM …
GROUP BY whatever
  HAVING number_of_lines_to_exclude = 0