sql >> データベース >  >> RDS >> Mysql

MySQLテーブルの重複エントリを削除します

    そのクエリを別のテーブルに選択し、名前を変更して元のテーブルを置き換えることで、これを非常に簡単に行うことができます。

    CREATE TABLE `table2` (
      `name` varchar(255), 
      `email` varchar(255), 
      UNIQUE KEY `email` (`email`));
    INSERT INTO `table2` SELECT `name`, DISTINCT(`email`) FROM `table`;
    RENAME TABLE `table` TO `table1`;
    RENAME TABLE `table2` TO `table`;
    

    このCREATEに注意してください 実際のテーブル形式に調整する必要があります。そもそも重複を防ぐ方法を提案するために、メールフィールドに一意のキーを追加しました。

    または、これをループすることもできます

    DELETE FROM `table` 
    WHERE `email` IN (
      SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1
    ) LIMIT 1
    

    これにより、呼び出しごとに1つの重複レコードが削除されます。制限の重要性は、重複するすべての行を削除しないことです



    1. MySQLトリガーは、トリガーを起動する原因となった現在のクエリを取得します

    2. グループごとのSQLカウント

    3. Oracle10gストアドプロシージャの結果セットを表示する

    4. ランダムな時間間隔を生成し、phpを使用してそれをmysql日時に追加するにはどうすればよいですか?