如何删除重复行但仅针对每个产品ID

时间:2018-06-07 06:19:02

标签: mysql

我想删除重复的行但仅针对每个产品ID,下面是我的表数据:

enter image description here

,运行删除语句后最终结果应如下所示:

enter image description here

这是我目前的查询:

DELETE FROM `test` WHERE name IN (SELECT name FROM `test` GROUP BY name HAVING COUNT(name)>1)

3 个答案:

答案 0 :(得分:0)

您可以使用自我联接删除基于相同<property name="useOriginalMessage" value="true" />product_id

的重复行
name

Demo

答案 1 :(得分:0)

我想你可以尝试一下。这对我有用。

DELETE FROM test WHERE id NOT IN (SELECT min(a.id) FROM test a GROUP BY a.name)

方面。

答案 2 :(得分:0)

delete t1 from test t1 join test t2 
on t1.name = t2.name and t1.product_id = t2.product_id and t1.id > t2.id;

这对我有用。

我已经完成了自我联接以找到重复的值。