sqlについて重複データを削除する

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 需绑定的所有字段名)别名)

おすすめ

転載: blog.csdn.net/JL_Java/article/details/109232527