mysqlは重複データを削除します
重複データを削除する
要件:データベースにクエリを実行し、重複データを削除し、データの一部を保持します。
コードは次のように表示されます。
アイデア1):
マルチテーブル接続を使用して、1つのテーブルを2つのテーブルとして使用します。IDが異なるため、コンテンツが重複しているが、where判定条件でIDが異なるデータを削除し、1つを保持します。最後に余分なテーブルを削除します。
(最適なソリューション):
delete b from biao a join biao b on a.classes=b.classes where a.id>b.id;
delete 表名 from 表名 as 别名 join 表名 as 别名 on 链接条件 where 判断条件
アイデア2):
(最新バージョンは利用できないようです)
最初にすべてのデータをグループ化し(非反復データをテーブルにすることができるように)、次に新しいクエリを使用して再度チェックします(sqlのクエリテーブルは直接変更できないため、または削除)、判断が必要な場合は、元のテーブルをグループ化されたテーブルと比較するだけで、繰り返されるデータのIDがグループ化されたIDと等しくない限り、削除します。
delete from biao where id!= all(select a.id from (select id from biao group by classes) a);
delete from 表名 where id(主键) != all(select id from (select id from 表名 group by 需绑定的所有字段名)别名)