1 -- 查询重复的数据 2 SELECT * FROM yy_visit_plan WHERE (post_code,cust_tree_node_id,visit_year,visit_month,staff_type) IN (SELECT post_code,cust_tree_node_id,visit_year,visit_month,staff_type FROM yy_visit_plan GROUP BY post_code,cust_tree_node_id,visit_year,visit_month,staff_type HAVING COUNT(cust_tree_node_id) > 1); 3 4 -- 删除重复数据 5 DELETE FROM yy_visit_plan WHERE (post_code,cust_tree_node_id,visit_year,visit_month,staff_type) IN (select * from (SELECT post_code,cust_tree_node_id,visit_year,visit_month,staff_type FROM yy_visit_plan GROUP BY post_code,cust_tree_node_id,visit_year,visit_month,staff_type HAVING COUNT(cust_tree_node_id) > 1) a) AND plan_id NOT IN (select * from (SELECT MAX(plan_id) as plan_id FROM yy_visit_plan GROUP BY post_code,cust_tree_node_id,visit_year,visit_month,staff_type HAVING COUNT(*)>1) b);