如何删除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