mysql - 如何删除重复的行但仅限于每个产品 ID

标签 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)

最佳答案

您可以使用自联接删除基于相同 product_idname 的重复行

delete a
from test a
left join test b on a.product_id = b.product_id
                 and a.name = b.name
                 and a.id > b.id
where b.product_id is not null

Demo

关于mysql - 如何删除重复的行但仅限于每个产品 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50734162/

相关文章:

mysql - 对话属于多个用户,但用户 A 删除而用户 B 不删除。我们如何防止它被退回?

php - Opencart(使用 php 5.2 创建 OC 本地实例时出错)

php - Mysql查询多个数组值

android - 用于在 Android 上进行测试的本地 mySql 数据库?

mysql - 首先列出最匹配的 id,然后列出其他的

php - 在mysql数据库中将文本保存为pre

mysql根据之前的记录更新数据

mysql - 通过子查询进行算术?

php - 如何将 mysql 函数扩展到我自己的数据库类中?