本文采用sql语句删除
思路是这样的通过group找出重复数据,然后删除掉,但我们并不想删除所有,所以我这里保留id最小的一条数据(因为我的id是int类型)
DELETE
FROM
edu_course_member
WHERE
(user_id, course_id ) IN (
SELECT t.user_id, t.course_id
FROM
( SELECT user_id, course_id FROM edu_course_member GROUP BY user_id, course_id HAVING count( * ) > 1 ) t
) #查出根据user_id,course_id 重复的数据
AND id_ NOT IN ( #排除最小的id
SELECT
hd.minid
FROM
( SELECT min( id_ ) AS minid FROM edu_course_member GROUP BY user_id, course_id HAVING count( 1 ) > 1 ) hd
)