2012-03-26 161 views
1

我有一个名为“具有以下结构的价格: 'ID','价格','availability_id'和'rate_id'。 当用户进行更改时,写入新记录而不是更新现有记录。我需要做的是删除具有匹配的'availability_id'和'rate_id'的重复记录,只保留具有最高'id'的记录。删除MySQL数据库中的重复条目

我已成功地列出使用下面的MySQL的复制:

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

我真的很感激于消除这些重复的任何建议。

回答

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 
+0

感谢@barsju,完美地工作! – 2012-03-26 12:01:06