Em um projeto, tive um problema em que o sistema fez linhas duplicadas na minha tabela.
Os campos da minha tabela são: id, de, para, msg, criado => exemplo: 1,1000,2000, ‘oi, isto é teste’, ‘2013-12-12’
Portanto, para obter linhas duplicadas:
SELECT id, COUNT( * ) AS c, `to` , `msg`
FROM `my-queue`
GROUP BY `to` , `msg`
HAVING c >1
Agora, para remover linhas duplicadas:
DELETE FROM `my-queue` WHERE id IN
(
SELECT id FROM
(
SELECT id, COUNT( * ) AS c, `to` , `msg`
FROM `my-queue`
GROUP BY `to` , `msg`
HAVING c >1
) as tem1
)
Isso foi simples, mas útil.
Seja um sucesso