首页 > 解决方案 > 删除具有重复字段值的行,但在 MySQL 中保留后面的行

问题描述

我对 MySql 很陌生,我想运行一个查询并删除重复 product_id 的记录并保留最新的

id     rule_id       produc_id
6 3 2
7 3 3
8 4 2
9 4 5
10 4 9

这是我的表,我想删除id=6的记录,因为这里的 product_id 在id=8中再次重复,但我想保留id=8的记录...

此外,查询应该足够灵活,以便如果我再次在表中添加具有重复 product_id 的另一条记录,则查询应该删除id=8的记录并保留最新记录......提前致谢......

标签: mysql

解决方案


DELETE t1
FROM table t1
JOIN table t2 USING (produc_id)
WHERE t1.id < t2.id

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2c2724a7b82bc78e7f6ecbaeeeabc2f6


推荐阅读