我有一张像
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
任何帮助将不胜感激。
我有一张像
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
任何帮助将不胜感激。
使用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;