准备数据表
1.查出重复的series_id
SELECT series_id FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1;
2.查出重复的series_id数据中最小的id
SELECT min(id) FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1;
3.查出重复的series_id数据中非最小的id(需要删除的)
SELECT id FROM cmj_used_car_series WHERE series_id IN ( SELECT series_id FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1) AND id NOT IN (SELECT min(id) FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1);
4.在Mysql中是不能删除查询出来的记录,而是要通过一张临时表来解决
SELECT id from (
SELECT id FROM cmj_used_car_series WHERE series_id in(
SELECT series_id FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1)
AND id not IN(SELECT min(id) FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1)
) as t;
5.删除series_id重复的数据(只保留一条,保留最小id的)
DELETE FROM cmj_used_car_series WHERE id IN (
SELECT id from (
SELECT id FROM cmj_used_car_series WHERE series_id in(
SELECT series_id FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1)
AND id not IN(SELECT min(id) FROM cmj_used_car_series GROUP BY series_id HAVING count(series_id) > 1)
) as t
);