본문 바로가기
MySql

MySQL 테이블의 한 열에서 중복 값 선택

by 베이스 공부 2021. 1. 17.
반응형

이 테이블이 있습니다.

id int, name nvarchar(max), ..............

예:

 ------------------
| id  | name       |
 ------------------
| 1   | Mohammed   | 
| 2   | Mohammed   |    
| 3   | Sakher     |
| 4   | Sakher     |
| 5   | Ahmad      |
| 6   | Ahmad      |
| 11  | Hasan      |
| 50  | Hasan      |
| 17  | Sameer     |
| 19  | Soso       |
| 110 | Omar       |
| 113 | Omar       |
| 220 | Omar       |
 ------------------

이 결과를 쿼리를 작성하려고합니다.

id1 int , id2 int , name nvarchar(max)

예:

 ------------------------
| id1 | id2 | name       |
 ------------------------
|  1  |  2  | Mohammed   |
|  3  |  4  | Sakher     |
|  5  |  6  | Ahmad      |
| 11  |  50 | Hasan      |
| 110 | 113 | Omar       |
| 110 | 220 | Omar       |
| 113 | 220 | Omar       |
 ------------------------

열 중 하나에 중복을 반환합니다. SQL Server 쿼리 또는 표준 ANSI SQL을 선호합니다.

 

해결 방법

 

이 쿼리는 요청한 내용을 반환합니다. n1.id> n2.id를 비교하는 것이 n1.id! = n2.id와 같이하는 것보다 낫습니다. 이렇게하면 모든 쌍을 두 번 (두 번째로 반대로) 얻을 수 있기 때문입니다.

SELECT 
    n1.id as Col1, n2.id as Col2, n1.name
FROM 
    Names n1, Names n2
WHERE 
    n1.name = n2.name 
    AND n1.id > n2.id


 

참조 페이지 https://stackoverflow.com/questions/14023608

 

 

반응형

댓글