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

MySQL에서 열 값이 'x, y, z'인 행 조회하는 방법 – IN 연산자 활용법

IN 연산자로 여러 값 조회하기

MySQL에서 특정 열의 값이 'x', 'y', 'z'처럼 여러 값 중 하나와 일치하는 행을 조회하고 싶다면 IN 연산자를 사용하면 됩니다. IN 연산자는 WHERE 절에서 지정한 값 목록 중 하나라도 일치하면 해당 행을 반환합니다.

기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName
WHERE yourColumnName IN('yourValue1','yourValue2','yourValue3',...........N);

위 문법을 실제로 이해하기 위해 예제 테이블을 만들어 보겠습니다.

1. 테이블 생성

테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table InOperatorDemo
   -> (
   -> ClientId int
   -> );
Query OK, 0 rows affected (0.52 sec)

2. 레코드 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into InOperatorDemo values(101);
Query OK, 1 row affected (0.19 sec)
mysql> insert into InOperatorDemo values(110);
Query OK, 1 row affected (0.11 sec)
mysql> insert into InOperatorDemo values(120);
Query OK, 1 row affected (0.17 sec)
mysql> insert into InOperatorDemo values(230);
Query OK, 1 row affected (0.11 sec)
mysql> insert into InOperatorDemo values(270);
Query OK, 1 row affected (0.15 sec)
mysql> insert into InOperatorDemo values(300);
Query OK, 1 row affected (0.14 sec)

3. 전체 레코드 확인

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

mysql> select *from InOperatorDemo;

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

+----------+
| ClientId |
+----------+
| 101      |
| 110      |
| 120      |
| 230      |
| 270      |
| 300      |
+----------+
6 rows in set (0.00 sec)

4. IN 연산자로 특정 값 조회

이제 IN 연산자를 사용해 ClientId가 120, 270, 300 중 하나에 해당하는 행만 조회해 보겠습니다.

mysql> select *from InOperatorDemo where ClientId IN('120','270','300');

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

+----------+
| ClientId |
+----------+
| 120      |
| 270      |
| 300      |
+----------+
3 rows in set (0.00 sec)

결과를 보면 IN 연산자가 지정한 세 개의 값('120', '270', '300')과 일치하는 행만 정확히 필터링하여 반환한 것을 확인할 수 있습니다. 참고로 IN 연산자는 여러 개의 OR 조건을 간결하게 표현하는 것과 동일한 효과를 내므로, 조건이 많아질수록 코드 가독성 면에서 큰 장점이 있습니다.