数据库
首页 > 数据库> > mysql-根据属性计数从表中删除

mysql-根据属性计数从表中删除

作者:互联网

可以说我在表x中有一个名为source的列.各个条目可以像;

Id   c1   c2      source ...
1    a     b      something
2    b     a      something  
3    a     b      somethingelse
4    c     a      somethingelse
5    a     b      something
6    b     c      something

如何删除源中少于3个相同元素的条目?例如,由于源值someelse出现了2次,因此我需要删除所有内容的条目.

解决方法:

DELETE  a
FROM    tableName a
        INNER JOIN
        (
            SELECT  source
            FROM    tableName
            GROUP BY SOURCE
            HAVING COUNT(*) < 3
        ) b ON a.source = b.source

> SQLFiddle Demo

为了提高性能,还需要做一件事,将INDEX添加到SOURCE列中.

标签:sql-delete,sql,mysql
来源: https://codeday.me/bug/20191031/1975332.html