MySQL удалить дубликаты строк - PullRequest
4 голосов
/ 17 января 2011

У меня есть таблица комментариев, структура которой выглядит следующим образом:

id, name, email, comment

У меня много повторяющихся комментариев с тем же именем и адресом электронной почты.Мне нужно удалить их, кто-нибудь может подсказать мне, как я могу добиться этого с помощью одного запроса?

Спасибо

1 Ответ

7 голосов
/ 17 января 2011
DELETE FROM comments c1 

WHERE EXISTS (
    SELECT * 
    FROM comments c2 
    WHERE c2.id <> c1.id 
        AND c2.name = c1.name 
        AND c2.email = c1.email 
        AND c2.comment = c1.comment
)

AND c1.id <> (
    SELECT MIN(c2.id) 
    FROM comments c2 
    WHERE c2.name = c1.name 
        AND c2.email = c1.email 
        AND c2.comment = c1.comment
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...