mysql - 如何删除重复的行,但仅限于每个产品 ID
问题描述
我想删除重复的行,但仅限于每个产品 id,下面是我的表数据:
运行 delete 语句后的最终结果应如下所示:
到目前为止,这是我的查询:
DELETE FROM `test` WHERE name IN (SELECT name FROM `test` GROUP BY name HAVING COUNT(name)>1)
解决方案
您可以使用自联接来删除基于相同product_id
和name
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
推荐阅读
- scala - 带蜂巢的父子火花scala递归udf
- android - 保存用户添加的动态按钮android
- objective-c - Swift 中的 Objective-C NS_OPTIONS
- python - 使用 Opencv 打开高分辨率图像
- python - 语言参考中描述的python函数的描述符协议在哪里?
- selenium - 如何使用 Selenium IDE 编写用于比较搜索结果的脚本?
- java - 正则表达式使用 regexpall 保持一或零
- javascript - 无法读取属性
- reactjs - React Material - MUIDataTable - 有没有办法在标题中计算行数?
- wcf - iisClientCertificateMappingAuthentication 和 WCF