首页 > 代码库 > mysql删除重复数据

mysql删除重复数据

id         姓名  课程名称 分数
1         张三     数学    69
2          李四        数学    89
3          张三        数学    69
删除除了自动编号不同,其他都相同的学生冗余信息

 

完整的sql语句如下:
DELETE FROM tablename where id not in (select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b ) ;
解释:
select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b
这个子查询的目的是从b中列出讲筛选结果,即bid的集合。
(select min(id) as bid from tablename group by name,kecheng,fenshu) as b
将分组结果中的最小的bid当做一个心的集合当做一个心的子表b,
注意mid(id)一定要有一个别名,这里取的是bid,作为b的一个列名,因为在上一级查询中要用到这个列名

mysql删除重复数据