MySQL에서 특정 범위 사이의 값을 조회할 때 일반적으로 BETWEEN 절을 사용하지만, 이를 사용하지 않고 AND 연산자와 비교 연산자(<=)를 조합하면 동일한 결과를 얻을 수 있습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Number int
);
Query OK, 0 rows affected (0.62 sec)2. 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable values(60); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(90); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(85); Query OK, 1 row affected (0.12 sec)
3. 전체 레코드 확인하기
SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+--------+ | Number | +--------+ | 10 | | 20 | | 60 | | 100 | | 90 | | 85 | +--------+ 6 rows in set (0.00 sec)
4. BETWEEN 절 없이 범위 내 값 조회하기
BETWEEN 절 대신 비교 연산자와 AND 연산자를 함께 사용하면 원하는 범위의 값을 손쉽게 조회할 수 있습니다. 아래 쿼리는 15 이상 80 이하인 값을 가져옵니다.
mysql> select *from DemoTable where 15 <= Number and Number <= 80;
실행 결과는 다음과 같습니다.
+--------+ | Number | +--------+ | 20 | | 60 | +--------+ 2 rows in set (0.00 sec)
정리
이처럼 WHERE 조건1 AND 조건2 형태로 작성하면 BETWEEN 절과 완전히 동일한 결과를 얻을 수 있습니다. 두 방식 모두 경계값(15, 80)을 포함하여 조회하며, 상황에 따라 가독성이나 쿼리 최적화 관점에서 선호되는 방식을 선택하면 됩니다.