Подтвердить что ты не робот

Как найти повторяющиеся строки на основе нескольких полей в MySQL?

Возможный дубликат:
Mysql Duplicate Rows (Дубликат обнаружен с использованием 2 столбцов)

В базе данных MySQL у меня много строк. Например:

id | title   | time  | domain
32   title1    12:30   domain1.com
33   title1    12:30   domain2.com
34   title2    14:20   domain1.com
35   title3    14:30   domain2.com
36   title1    12:30   domain55.com

Как я могу выбирать строки из базы данных на основе только title и времени? Дублирующие домены или идентификатор не беспокоят, только два других поля.

Я хочу иметь возможность извлекать строки 32, 33 и 36, потому что они имеют одинаковые заголовки и одинаковые времена.

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

4b9b3361

Ответ 1

Вот что вы хотите

SELECT title, time  
  FROM table
GROUP BY title, time
  HAVING count(*) > 1

Ответ 2

select distinct id, title, time
  from table t1
 where exists (select * 
                 from table t2 
                where t2.id <> t1.id
                  and t2.title = t1.title
                  and t2.time = t1.time
               )