我需要删除所有具有相同stationId
的重复记录,并且只保留一条具有最新dateUpdated
stationId
是varchar(20)
dateUpdated
是日期时间
我通常删除重复以下内容,但这次我认为它不会起作用
ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(title);
答案 0 :(得分:1)
我认为alter table
语句不会删除记录;它只是忽略索引创建错误。
相反:
delete t
from table t left join
(select t.stationId, max(t.dateUpdated) as maxdu
from table t
group by t.stationId
) tmax
on t.stationId = tmax.stationId and t.dateUpdated = tmax.maxdu
where tmax.stationId is null;
答案 1 :(得分:0)
DELETE t1 FROM table t1, table t2 WHERE t1.dateUpdated < t2.dateUpdated AND t1.stationId= t2.stationId