Mysql學習總結(71)——MySQL 查詢重複記錄總結

-- 查找表中多餘的重複記錄,重複記錄是根據單個字段來判斷

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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章