Mysql学习总结(71)——MySQL 重复记录查询与删除总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012562943/article/details/88530950

-- 查找表中多余的重复记录,重复记录是根据单个字段来判断

select * from loan_collection_task where loan_case_id in (select loan_case_id from loan_collection_task group by loan_case_id having count(loan_case_id) >1)

-- 删除重复记录,只保留id字段值最大的记录

delete from loan_collection_task where loan_case_id not in (select maxid from (select max(id) as maxid from loan_collection_task group by loan_case_id) b)

-- 查找表中多余的重复记录(多个字段)

select * from (select *, concat(`loan_case_id` , loan_term_id, task_status, operation_date) as loancaseAndTaskstatus from `loan_collection_task`) as t where t.loancaseAndTaskstatus in (select loancaseAndTaskstatus from (select concat(`loan_case_id` , loan_term_id, task_status, operation_date) as loancaseAndTaskstatus from loan_collection_task) as tt group by loancaseAndTaskstatus having count(loancaseAndTaskstatus) > 1) 

-- 删除表中多余的重复记录(多个字段),只保留id字段值最大的记录

delete from loan_collection_task where id not in (select maxId from (select MAX(id) as maxId, concat(`loan_case_id` ,task_status, operation_date) as loancaseAndTaskstatus from loan_collection_task group by loancaseAndTaskstatus) as t)

猜你喜欢

转载自blog.csdn.net/u012562943/article/details/88530950
今日推荐