mysql - 如果 image_id 计数大于 5,则删除?

标签 mysql sql select

我有 table

id color      image_id
1   red          2
2   green        2
3   pink         2
4   black        2
5   gray         2
6   orange       2
7   purple       2
8   yellow       2
9   greenish     2
10  white        2

select image_id,count(image_id) from colors group by image_id having count(image_id) > 5

如果计数大于 5 则删除大于 5 的数据。 例如

6   orange       2
7   purple       2
8   yellow       2
9   greenish     2
10  white        2

应该删除

最佳答案

您可以使用子查询,然后基于内部连接删除,例如它只会删除它有连接的记录,在你的子查询中你只会带回你想删除的记录..

delete a
from colors a
inner join
(
select image_id,count(image_id) from colors group by image_id having count(image_id) > 5
) as b
on a.image_id = b.image_id

关于mysql - 如果 image_id 计数大于 5,则删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26870966/

相关文章:

sql - 2 列的多个 where 子句

sql - 使用非 SQL 数据库是否消除了防范 "SQL injection"的需要?

select - IE9 打印时多选溢出

php - 如何向按名称排序的 foreach 循环选择框添加选项?

javascript - 如何通过管道分隔隐藏字段中的多个选择

php - 如何从表中的第 4 列获取值,其中第 3 列与某个值匹配,第 4 列与某个值匹配?

mysql - SQL:没有任何选择的简单 if-then-else 语句

MySQL - 重复计算列中两个值之间的行数

sql 使连接的表成为一张表可能是什么?

c# - Entity Framework 和MySql更新实体