on duplicate key update where句 - SQLテーブル内の重複した値を見つける

mysql on duplicate key update 何もしない / sql / duplicates

1つのフィールドで重複しているものを見つけるのは簡単です。

SELECT name, COUNT(email) 
FROM users
GROUP BY email
HAVING COUNT(email) > 1

つまり、テーブルがあれば

ID   NAME   EMAIL
1    John   [email protected]
2    Sam    [email protected]
3    Tom    [email protected]
4    Bob    [email protected]
5    Tom    [email protected]

Pang



Answer #1

重複している部分を選択します。

SELECT *
FROM table
WHERE
    id NOT IN (
        SELECT MIN(id)
        FROM table
        GROUP BY column1, column2
);

重複している部分を削除します。

DELETE FROM table
WHERE
    id NOT IN (
        SELECT MIN(id)
        FROM table
        GROUP BY column1, column2
);