删除MySQL数据库中的重复条目

时间:2012-03-26 10:30:58

标签: mysql

我有一张名为'具有以下结构的价格的表: 'id','price,'availability_id'和'rate_id'。 当用户进行更改时,会写入新记录而不是更新现有记录。我需要做的是删除匹配'availability_id'和'rate_id'的重复记录,只保留具有最高'id'的记录。

我已设法使用以下MySQL列出重复项:

select   'id',
`availability_id`,
         `rate_id`,
         count(*)
from     prices
group by 'id', 
`availability_id`,
         `rate_id`
having   count(*) > 1

我真的很感激有关删除这些副本的任何建议。

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

DELETE p1 FROM prices p1, prices p2 
WHERE p1.id < p2.id 
AND p1.availability_id = p2.availability_id 
AND p1.rate_id = p2.rate_id