MySQL의 if()를 사용하여 중복 레코드를 계산할 수 있습니다. 구문은 다음과 같습니다 -
SELECT yourColumnName, COUNT(*) AS anyVariableName, IF ( COUNT(*)>1,"Duplicate Records", "Not Duplicate records") as anyVariableName FROM yourTableName by yourColumnName;
위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -
mysql> 테이블 DuplicateRecords 생성 -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(30), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(0.82초)사전>삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -
mysql> insert into DuplicateRecords(Name) values('Carol');Query OK, 1행 영향(0.81초)mysql> insert into DuplicateRecords(Name) values('John');Query OK, 1행 영향( 0.17초)mysql> DuplicateRecords(Name) values('Sam')에 삽입;Query OK, 1개의 행이 영향을 받습니다(0.19초)mysql> insert into DuplicateRecords(Name) values('John');Query OK, 1개의 행이 영향을 받습니다( 0.17초)mysql> DuplicateRecords(이름) 값에 삽입('Sam');쿼리 OK, 1행 영향(0.11초)mysql> DuplicateRecords(Name) 값에 삽입('Sam');쿼리 OK, 1행 영향( 0.20초)mysql> DuplicateRecords(Name) values('John')에 삽입, 쿼리 확인, 1개 행 영향(0.12초)mysql> DuplicateRecords(Name) 값에 삽입('Carol'), 쿼리 확인, 1개 영향( 0.14초)mysql> DuplicateRecords(Name) values('Carol')에 삽입, 쿼리 확인, 영향을 받는 1개 행(0.10초) mysql> DuplicateRecords(이름) 값에 삽입('Mike'), 쿼리 확인, 영향 1개( 0.14초)select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> DuplicateRecords에서 *선택;다음은 출력입니다 -
+----+-------+| 아이디 | 이름 |+----+-------+| 1 | 캐롤 || 2 | 존 || 3 | 샘 || 4 | 존 || 5 | 샘 || 6 | 샘 || 7 | 존 || 8 | 캐롤 || 9 | 캐롤 || 10 | Mike |+----+-------+10행 세트(0.00초)다음은 테이블에서 중복 레코드를 계산하는 쿼리입니다 -
mysql> SELECT Name, COUNT(*) AS Repetition, IF (COUNT(*)>1,"Duplicate Records", "Not Duplicate records") as IsDuplicateRecordsOrNot -> 이름별 DuplicateRecords 그룹;다음은 출력입니다 -
+-------+------------+------------------------ +| 이름 | 반복 | IsDuplicateRecordsOrNot |+-------+------------+------------------------+ | 캐롤 | 3 | 중복 레코드 || 존 | 3 | 중복 레코드 || 샘 | 3 | 중복 레코드 || 마이크 | 1 | 중복되지 않는 레코드 |+-------+------------+------------------------ -+4 행 세트(0.00초)