如何删除mysql中的唯一记录?

如何删除mysql中的唯一记录?,mysql,sql,Mysql,Sql,我有一张这样的桌子 rowID | StudentName | rollNo | Class | | | 1 | ABC |10 | 5 2 | ABC |10 | 5 3 | xyz |11 | 5 4 | asd |12 | 5 如何删除类为5 这样我就有剩下的表了 rowID | Stude

我有一张这样的桌子

rowID | StudentName | rollNo | Class
      |             |        |
1     | ABC         |10      |  5   
2     | ABC         |10      |  5
3     | xyz         |11      |  5
4     | asd         |12      |  5
如何删除类为
5

这样我就有剩下的表了

rowID | StudentName | rollNo | Class
      |             |        |
1     | ABC         |10      |  5  

我想这正是你想要的:

select min(id), StudentName, rollNo, Class
from t
where class = 5
group by StudentName, rollNo, Class
having count(*) > 1;
如果确实要删除记录,则需要使用
delete

delete t
    from t left join
         (select studentname, rollno, class, min(id) as min_id, count(*) as cnt
          from t
          group by studentname, rollno, class
         ) tt
         on t.id = tt.minid and tt.cnt > 1
    where tt.minid is null;
试试这个

DELETE t1 FROM table t1
        INNER JOIN
    table t2 
WHERE
    t1.rowID < t2.rowID AND t1.StudentName = t2.StudentName and t1.rollNo=t2.rollNo
从表t1中删除t1
内连接
表t2
哪里
t1.rowID
这将删除所有重复的行,留下具有最高
rowID