删除其中field1和field2相同的重复项

时间:2013-03-31 17:09:21

标签: mysql

我有一张像

这样的表格
productId retailerId
1 2
1 2
1 4
1 6
1 8
1 8
2 3
2 6
2 6

现在,我需要删除重复项。我已经弄清楚当一个字段相同时如何删除重复项。但我需要删除重复项,例如1 21 82 6,其中两个字段都相同。

非常感谢任何帮助。

1 个答案:

答案 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;