BETWEEN 키워드로 여러 입력값 조회하기
지정한 여러 입력 범위에 해당하는 값을 하나의 MySQL 쿼리로 조회하려면 BETWEEN 키워드를 사용하면 됩니다. BETWEEN은 시작값과 끝값을 모두 포함하여 두 값 사이에 있는 레코드만 필터링해 주는 연산자입니다.
먼저 예제로 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1537
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.72 sec)
샘플 데이터 삽입
INSERT 명령을 사용하여 테이블에 학생 레코드를 추가합니다.
mysql> insert into DemoTable1537(StudentName) values('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1537(StudentName) values('Bob');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1537(StudentName) values('Sam');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1537(StudentName) values('Mike');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1537(StudentName) values('David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1537(StudentName) values('John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1537(StudentName) values('Carol');
Query OK, 1 row affected (0.12 sec)전체 레코드 확인
SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1537;
실행 결과는 다음과 같습니다.
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1 | Chris |
| 2 | Bob |
| 3 | Sam |
| 4 | Mike |
| 5 | David |
| 6 | John |
| 7 | Carol |
+-----------+-------------+
7 rows in set (0.00 sec)
여러 입력값을 조회하는 쿼리 실행
StudentId가 3부터 6 사이인 학생들의 이름을 조회하는 것이 목표입니다. 이때 BETWEEN 키워드를 활용한 쿼리는 다음과 같습니다.
mysql> select StudentName from DemoTable1537 where StudentId between 3 and 6;
실행 결과는 다음과 같습니다.
+-------------+
| StudentName |
+-------------+
| Sam |
| Mike |
| David |
| John |
+-------------+
4 rows in set (0.00 sec)
결과를 보면 StudentId가 3(Sam), 4(Mike), 5(David), 6(John)인 네 개의 레코드가 정상적으로 반환되었습니다. BETWEEN은 경계값인 3과 6까지 모두 포함하므로, 특정 ID 범위의 데이터를 간편하게 조회할 수 있습니다.
참고로, 특정 값들이 연속적이지 않고 개별적으로 나열되어 있다면 BETWEEN 대신 IN 연산자를 사용하는 것이 더 적합합니다. 반면 연속된 범위의 값을 다룰 때는 BETWEEN이 가장 효율적인 선택입니다.