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

MySQL에서 SELECT * WHERE var == [여러 값 중 하나] 조건 구현하기 – IN() 연산자 활용법

MySQL에서 여러 값 중 하나와 일치하는 행 조회하기

SELECT 문에서 특정 컬럼의 값이 여러 후보 값 중 하나와 일치하는지 확인하고 싶다면 IN() 연산자를 사용하면 됩니다. IN()은 여러 개의 OR 조건을 하나의 간결한 표현으로 처리할 수 있어 가독성이 좋고 쿼리 작성도 훨씬 편리합니다.

아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable1624
    -> (
    -> ClientId int,
    -> ClientName varchar(20)
    -> );
Query OK, 0 rows affected (0.39 sec)

2단계: 샘플 데이터 삽입

INSERT 명령을 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable1624 values(101,'Chris Brown');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable1624 values(102,'David Miller');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1624 values(103,'John Smith');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1624 values(104,'Carol Taylor');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1624 values(105,'Adam Smith');
Query OK, 1 row affected (0.19 sec)

3단계: 전체 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1624;

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

+----------+--------------+
| ClientId | ClientName   |
+----------+--------------+
|      101 | Chris Brown  |
|      102 | David Miller |
|      103 | John Smith   |
|      104 | Carol Taylor |
|      105 | Adam Smith   |
+----------+--------------+
5 rows in set (0.00 sec)

4단계: IN()을 활용한 조건 조회

이제 ClientId가 101, 102, 104 중 하나에 해당하는 행만 조회하는 쿼리를 실행해 보겠습니다. 이것이 바로 'var == 여러 값 중 하나' 조건을 구현하는 방법입니다.

mysql> select * from DemoTable1624 where ClientId in(101,102,104);

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

+----------+--------------+
| ClientId | ClientName   |
+----------+--------------+
|      101 | Chris Brown  |
|      102 | David Miller |
|      104 | Carol Taylor |
+----------+--------------+
3 rows in set (0.00 sec)

정리

WHERE 절에서 하나의 컬럼을 여러 값과 비교해야 할 때는 IN() 연산자가 가장 효율적인 선택입니다. 만약 IN()을 사용하지 않는다면 ClientId = 101 OR ClientId = 102 OR ClientId = 104처럼 조건을 일일이 나열해야 하므로 코드가 길어지고 관리하기 어려워집니다. 또한 IN()은 서브쿼리와 함께 사용할 수 있어 더욱 유연한 조건 조회가 가능하다는 장점도 있습니다.