2012-03-26 14 views
1

私はテーブルに ' ' id '、' price '、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を、完璧に働きました! –

関連する問題