mysql - 如何删除mysql中的唯一记录?
问题描述
我有一张这样的桌子
rowID | StudentName | rollNo | Class
| | |
1 | ABC |10 | 5
2 | ABC |10 | 5
3 | xyz |11 | 5
4 | asd |12 | 5
如何删除unique
类所在的所有记录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;
推荐阅读
- kubernetes - 如何使用 helm 在 pod 中手动运行一次脚本
- c# - 反转 XOR 字节移位算法
- c++ - 为什么不使用指针读取结构?
- asp.net-core - 当 ModelState 无效且 ASP.NET Core 确实返回 Page() 时,复选框列表值为空
- twitter-bootstrap - Bootstrap 4 卡网格与 1 大卡对齐问题
- mysql - PARSE_ERROR MySQL
- r - 如何使用R转换列中的行
- postgresql - 由于与数据库的多个连接,Airflow 数据库性能影响
- presto - 如何在 AWS Athena 的查询中创建对已解析字段的引用?
- javascript - Bootstrap 4轮播下一个和上一个按钮在一个页面上不起作用,但在其他页面上工作正常