32

Possible Duplicate:
Mysql Duplicate Rows ( Duplicate detected using 2 columns )

In a MySQL database I have many rows. For example:

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

How am I able to select rows from a database based on only title and time? Duplicate domains or ID's are not of concern, only the other two fields.

I want to be able to retrieve rows 32, 33 and 36 because they have identical titles and identical times.

I don't want to have to put in a title or time, I want the query to return all fields where there's a "duplicate" match found on these two fields whether that be only two or 50. That way I can go through and edit or delete some of the duplicates.

0

2 Answers 2

66

Here is what you want

SELECT title, time  
  FROM table
GROUP BY title, time
  HAVING count(*) > 1
Sign up to request clarification or add additional context in comments.

1 Comment

it will skip next rows having title="title1" with time="10:00" cause grouping by the order of operation is SQL: FROM clause WHERE clause GROUP BY clause HAVING clause SELECT clause ORDER BY claus
38
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
               )

1 Comment

This actually answers the question, returning all three duplicate rows, whereas the other answer only returns one row.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.