テーブルから「重複」と考えられる特定のレコードを削除する必要があります。彼らは正確にすべての列の値が同じではないので、正確に重複していません。 col_a
とcol_b
は、いくつかの行で同じ値を持ち、かつ(タイムスタンプである) col_c
は、たとえば、内の他の各 の5分で、その後、削除した場合MySQLで「重複」レコードを削除するには?
:むしろ、ロジックはこのようなものです最も早い行がある行以外のすべての行 タイムスタンプ。
例データ:
id col_a col_b col_c
1 foo bar 2016-01-01 00:00:00
2 foo bar 2016-01-01 00:00:12
3 foo bar 2016-01-01 00:00:22
4 foo bar 2016-01-05 00:00:00
5 apple banana 2016-01-01 00:00:00
6 apple banana 2016-01-05 00:00:00
上記の例では、私は、ID = 2、ID = 3を削除したいのMySQLで行うことは可能、このですか?
同じcola_aとcol_bを持つレコードが複数ある場合はどうなりますか? 1番目と最後のレコードの時差は10分(5分の許容範囲外)としますが、連続するレコード間に5分未満の差がありますか?あなたはすべてを削除しますが、イーリーリーズのレコードは、または最も早いものから5分後に他のものを削除しますか? 5分間隔ごとにすべての重複を削除し、その間隔から最も古いタイムスタンプのみを保持することは容認できますか? – Shadow
はい、私はそう思います。 「正当な」記録は、少なくとも2時間離れており、しばしば離れている。私のアプリでは非常に奇妙なバグのために、必要なレコード以上が挿入されています。アプリケーションで実際に問題を引き起こすわけではありませんが、ちょっとテーブルを整理したいだけです。 – StackOverflowNewbie
それで、確認として...私たちがレコード(同じcol_aとcol_b)を持っていて、col_cの時間が4分離れているシリーズで... 06:15、08:30、08:34、08:38、08 :42など、私たちは06:15と08:30を保持しますが、08:34、08:38、08:42は削除します。つまり...前の5分以内に別の行(同じcol_a、col_b)がある限り、そのレコードを削除する必要があります。その前のレコードも削除される場合でも。 – spencer7593