Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 특정 중복 레코드만 조회하는 방법 (LIKE 연산자 활용)

MySQL 테이블에 여러 개의 중복 데이터가 저장되어 있을 때, 그중 특정 값에 해당하는 중복 레코드만 골라서 확인하고 싶은 경우가 있습니다. 이럴 때 LIKE 연산자를 사용하면 간단하게 원하는 레코드만 조회할 수 있습니다.

기본 문법

특정 중복 레코드만 표시하려면 아래와 같이 WHERE 절과 함께 LIKE 연산자를 사용합니다.

SELECT * FROM yourTableName
WHERE yourColumnName LIKE 'yourValue';

실습 예제

먼저 실습용 테이블을 생성해 보겠습니다.

mysql> CREATE TABLE DemoTable
-> (
-> Name varchar(20)
-> );
Query OK, 0 rows affected (1.03 sec)

이제 INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다. 의도적으로 'John'과 'Chris'를 중복해서 넣겠습니다.

mysql> INSERT INTO DemoTable VALUES('John');
Query OK, 1 row affected (0.32 sec)
mysql> INSERT INTO DemoTable VALUES('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('John');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES('Bob');
Query OK, 1 row affected (0.42 sec)
mysql> INSERT INTO DemoTable VALUES('Chris');
Query OK, 1 row affected (0.30 sec)

SELECT 문으로 테이블의 전체 레코드를 확인해 보면 다음과 같습니다.

mysql> SELECT * FROM DemoTable;

실행 결과는 아래와 같습니다.

+-------+
| Name |
+-------+
| John |
| Chris |
| John |
| Bob |
| Chris |
+-------+
5 rows in set (0.00 sec)

특정 중복 레코드만 조회하기

전체 5개의 레코드 중에서 'John'이라는 이름이 중복된 레코드만 가져오고 싶다면, 다음과 같이 LIKE 연산자를 사용한 쿼리를 작성합니다.

mysql> SELECT * FROM DemoTable WHERE Name LIKE 'John';

위 쿼리를 실행하면 'John'에 해당하는 중복 레코드만 출력됩니다.

+------+
| Name |
+------+
| John |
| John |
+------+
2 rows in set (0.03 sec)

추가 팁

LIKE 연산자는 완전 일치뿐만 아니라 와일드카드(%)와 함께 사용하면 부분 일치 검색도 가능합니다. 예를 들어 WHERE Name LIKE 'J%'라고 작성하면 'J'로 시작하는 모든 이름을 조회할 수 있습니다. 또한 정확히 일치하는 값만 찾는 경우에는 = 연산자를 사용해도 동일한 결과를 얻을 수 있으며, 중복 레코드의 개수를 세고 싶다면 COUNT(*) 함수를 함께 활용하면 더욱 유용합니다.