删除数据库重复数据

DELETE FROM yh_repair_road
WHERE
(road_id,name,direct,start_milestone,end_milestone,start_day,end_day,lane) IN (
SELECT road_id,name,direct,start_milestone,end_milestone,start_day,end_day,lane FROM (
SELECT
road_id,name,direct,start_milestone,end_milestone,start_day,end_day,
lane
FROM
yh_repair_road b
GROUP BY
b.name,
b.direct,b.start_milestone,b.end_milestone,b.start_day,b.end_day,b.lane
HAVING
count(*) > 1
)g)
AND id NOT IN (
SELECT id FROM (
SELECT
max(yh_repair_road.id) id
FROM
yh_repair_road
GROUP BY
name,direct,start_milestone,end_milestone,start_day,end_day,lane
HAVING
count(*) > 1
)f)

原文地址:https://www.cnblogs.com/zl96291/p/10414611.html