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

MySQL IN() 연산자로 테이블에서 원하는 레코드만 조회하는 방법

MySQL에서 IN() 연산자를 사용하면 여러 개의 특정 값을 한 번에 조건으로 지정하여 원하는 레코드만 간편하게 조회할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, IN 연산자를 활용해 선택한 레코드만 출력하는 과정을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 데모용 테이블을 생성합니다. Id 컬럼은 자동 증가(AUTO_INCREMENT) 기본 키로 설정합니다.

mysql> create table DemoTable(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerName varchar(100)
);
Query OK, 0 rows affected (0.51 sec)

2. 샘플 데이터 삽입

INSERT 명령어를 사용해 고객 이름 데이터를 몇 건 입력합니다.

mysql> insert into DemoTable(CustomerName) values('Adam Smith');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(CustomerName) values('Chris Brown');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(CustomerName) values('David Miller');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(CustomerName) values('Carol Taylot');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(CustomerName) values('Carol Taylor');
Query OK, 1 row affected (0.13 sec)

3. 전체 레코드 확인

SELECT 문으로 테이블의 모든 데이터를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------------+
| Id | CustomerName |
+----+--------------+
| 1  | Adam Smith   |
| 2  | Chris Brown  |
| 3  | David Miller |
| 5  | Carol Taylor |
+----+--------------+
4 rows in set (0.00 sec)

4. IN() 연산자로 선택한 레코드만 조회하기

이제 IN 연산자를 사용해 Id가 2와 5인 레코드만 조회해 보겠습니다. IN 연산자는 괄호 안에 나열된 값 중 하나라도 일치하면 해당 행을 반환합니다.

mysql> select *from DemoTable where Id IN(2,5);

실행 결과는 다음과 같습니다.

+----+--------------+
| Id | CustomerName |
+----+--------------+
| 2  | Chris Brown  |
| 5  | Carol Taylor |
+----+--------------+
2 rows in set (0.00 sec)

정리

WHERE 절에서 Id = 2 OR Id = 5처럼 조건을 여러 번 작성하는 대신, Id IN(2,5)와 같이 IN 연산자를 사용하면 쿼리가 더 간결하고 가독성이 좋아집니다. 조회할 값이 많아질수록 IN 연산자의 장점은 더욱 커지므로, 실무에서도 적극적으로 활용해 보시기 바랍니다.