2010-12-10 3 views
4

Мне нужно найти все строки в моей таблице, где строки определенного поля дублируются в двух или более местах.Найти дубликаты строк в базе данных

Можно ли это сделать в статусе MySQL?

EDIT

Мне нужно, чтобы получить каждую строку не просто подсчет, сколько дубликатов есть. Я хочу иметь возможность редактировать поля.

ответ

7

Да, попробовать что-то вроде этого:

SELECT * 
FROM `YourTable` 
WHERE `YourColumn` IN (
    SELECT `YourColumn` 
    FROM `YourTable` 
    GROUP BY `YourColumn` 
    HAVING COUNT(*) > 1 
) 
+0

Ваш запрос замораживает мой PHPmyadmin. Возможно, это потому, что у меня есть +7000 строк. – Cudos 2010-12-10 09:39:15

+0

Это странно. Отлично работает для меня на больших столах. Может быть, какой-то другой запрос вызывает проблемы с блокировкой? – 2010-12-10 09:51:52

5

Да, с помощью GROUP BY и HAVING.

SELECT mycolumn, count(*) FROM mytable 
group by mycolumn 
having count(*) > 1 
Смежные вопросы