2

我有一张像

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

任何帮助将不胜感激。

4

1 回答 1

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;
于 2013-03-31T17:16:04.293 回答