目录
1、使用背景
因为系统前期其他人员开发过程之中,没有针对add(添加操作)的接口,做幂等性验证,出现相关的业务数据出现错误,于是需要执行一条语句进行删除,保证数据唯一性。
2、代码实现
重复数据下图所示:
3、SQL语句实现
DELETE
FROM
cos_study_group_user
WHERE
Id NOT IN (
SELECT
Id
FROM
(
SELECT
-- t.id,count(t.id) total,t.course_id,t.study_group_set_id,t.user_id
MIN(Id) AS Id
FROM cos_study_group_user t GROUP BY t.course_id,t.study_group_set_id,t.user_id )
t )
4、原理总结
这句的意思其实就是,通过分组统计出数据库中不重复的最小数据id编号,让后通过 not in 去删除其他重复多余的数据。
5、参考文章
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
扫描二维码关注公众号,回复:
13465548 查看本文章
