2012-10-02 3 views
24

가능한 중복 : 나는 많은 행이 MySQL 데이터베이스에서
Mysql Duplicate Rows (Duplicate detected using 2 columns)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 

어떻게 제목과 시간을 기준으로 데이터베이스에서 행을 선택 할 수 있어요? 중복 된 도메인 또는 ID는 중요하지 않으며 다른 두 필드 만 있습니다.

동일한 제목과 동일한 시간을 가지므로 32, 33 및 36 행을 검색 할 수 있기를 원합니다.

제목이나 시간을 넣고 싶지 않습니다.이 두 필드에 "중복"일치 항목이 두 개 또는 50 개 밖에없는 모든 필드를 반환하는 쿼리를 원합니다. 그런 식으로 일부를 거쳐 편집하거나 삭제할 수 있습니다. 여기

+0

당신이 대답을 받아 주 시겠어요 원하는 무엇인가? – kasi

답변

28
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 
       ) 
+3

[다른 답변] (http://stackoverflow.com/a/12691631/283991)은 한 행만 반환하는 반면 실제로이 질문에 대한 대답으로 세 개의 중복 행을 모두 반환합니다. – mwotton

58

당신은 당신이 그것을 좋아하는 경우에

SELECT title, time 
    FROM table 
GROUP BY title, time 
    HAVING count(*) > 1 
관련 문제