Data:
Execute sql:select count(*) as count ,name,id from ceshi group by name
削除される最後の SQL SQL は次のとおりです: ID が入っていない ceshi から削除 (名前で ceshi グループから count ,name,id として count(*) を選択) 最大値を保持したい場合id の値: 簡単な方法は次のとおりです。id が含まれていない ceshi から削除します (count (*) を count ,name,id から選択します (select * from ceshi order by id desc) group by name)
明確な
実際には非常に簡単で、テーブルを 2 つのテーブルとして扱うだけです。 DELETE p1 from TABLE p1, TABLE p2 WHERE p1.name = p2.name AND p1.email = p2.email AND p1.id ここに質問があります、質問者はこう言いました。最新のものを保持する どれ(つまりIDが小さいもの)が増えているので、最新のものを一番大きくすればいいのではないでしょうか? 上記のステートメントでは、p1.id もちろん、group by, count を使用すると、n 回繰り返す状況をより正確に制御できます。ただし、元の投稿者のニーズに応じて、重複したものを削除し、最新のものを保持する必要があります。
DELETE FROM table WHERE id not in ( SELECT tb.id FROM ( SELECT tmp.* FROM table tmp ) tb GROUP BY tb.field1, tb.field2,… ); table はテーブル名、field は必要な重複フィールドを削除します。
新しいテーブルを作成し、名前と電子メールを一意のインデックスとして設定し、古いテーブル データを再挿入します。