最新の
をデータベースで保存しながら、重複したレコードを削除すると、特に一意の識別子を持つテーブルで重複したレコードを遭遇することが一般的です。 MySQLでは、電子メールが複製され、最新のIDの最新のIDのみを保持したい状況に直面する可能性があります。テーブル。ステップ。
- 実装:
- 列IDと電子メールでテストという名前の次のmysqlテーブルを検討してください: | ID |メール|
| --- | --- |
| 1 | aaa |
| 2 | BBB |
| 3 | CCC |
| 4 | BBB |
| 5 | DDD |
| 6 | eee |
| 7 | aaa |
| 8 | aaa |
| 9 | eee |
- 複製したメールを削除して最新の電子メールを保持するには、次のクエリを実行できます。
テストから
内側の結合(
lastidとしてmax(id)を選択します
テストから
メールでグループ
カウント(*)> 1
)duplic.email = test.emailの複製
ここで、test.id このクエリは、複製電子メールの最新のIDを取得し、すべての複製を古いIDで削除します。クエリを実行した後、テストテーブルは次のように表示されます。 ID |メール|
| --- | --- |
| 3 | CCC |
| 4 | BBB |
| 5 | DDD |
| 8 | aaa |
| 9 | eee |
最高のIDを持つ最新の複製のみが保存されており、テーブル内の最新の電子メールアドレスを維持するための要件を満たしています。