mysql - 如果其中一个条目满足特定条件,则删除一组中的所有条目

标签 mysql sql

如果该组中的某个条目符合条件,我实际上想删除属于该组(在 group by 子句中)的所有行。 现在我运行的查询实际上是一种元组匹配,速度非常慢。

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

最佳答案

您可以计算每个组的“要排除的行”数量,并使用 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

关于mysql - 如果其中一个条目满足特定条件,则删除一组中的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46541643/

相关文章:

c# - 在datetimepicker已经(保存)写入记录后,如何在sql base中删除,重置或写入 "null"值?

php - 签署表格问题

java - Hibernate 无法确定多对多关系中 : java. util.Collection 的类型

Mysql对Select查询结果进行select查询

mysql - 将 varchar 值 '19500.00' 转换为数据类型 int 时转换失败

php - 使用变量结果创建新表失败

mysql - SQL 内部连接和自然连接

php - Web 应用程序中的数据库前缀是什么?

sql - 为什么 Wordpress 有单独的 'usersmeta' 和 'users' SQL 表。为什么不把它们结合起来呢?

sql - MySql 条件排序依据