2012-03-26 156 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