我需要删除重复的记录(仅当cod1和模型重复时),并且只保存其中之一。
ID Cod1 Model
1 332 mdl1
2 332 mdl1
3 332 mdl2
4 450 mdl2
5 450 mdl2输出必须是
ID Cod1 Model
1 332 mdl1
3 332 mdl2
4 450 mdl2真的谢谢你!
发布于 2016-04-18 05:05:41
试试这个吧。将出现的Table1替换为实际的表名。
DELETE FROM Table1 WHERE ID IN
(SELECT * FROM
(SELECT T2.Id
FROM Table1 T1
INNER JOIN Table1 T2
ON T1.Cod1 = T2.Cod1 AND T1.Model = T2.Model
WHERE T2.ID > T1.ID
)T
);在最里面的查询中,当T2和模型匹配,并且T2.Id将是较大的id时,Cod1将找到匹配的Cod1记录。因此,它返回要删除的行的it。但是Mysql不允许您从来自同一个表的查询中删除,所以我们必须将其包装在另一个SELECT语句中,以欺骗Mysql允许您这样做。就是这样。
https://stackoverflow.com/questions/36682124
复制相似问题