我有一张像
这样的表格productId retailerId
1 2
1 2
1 4
1 6
1 8
1 8
2 3
2 6
2 6
现在,我需要删除重复项。我已经弄清楚当一个字段相同时如何删除重复项。但我需要删除重复项,例如1 2
,1 8
和2 6
,其中两个字段都相同。
非常感谢任何帮助。
答案 0 :(得分:2)
使用mysql的多表DELETE
语法,如下所示:
delete mytable
from mytable
join mytable t
on t.productId = mytable.productId
and t.retailerId = mytable.retailerId
and t.id < mytable.id
在SQLFiddle上查看此内容。
请注意,我假设您也有一个id列。
由于没有id
列,最简单的方法是将所需数据复制到临时表,删除所有数据,然后将其复制回来,如下所示:
CREATE TEMPORARY TABLE temptable
SELECT DISTINCT productId, retailerId
FROM mytable;
DELEYE FROM mytable;
INSERT INTO mytable
SELECT *
FROM temptable;