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

MySQL에서 BETWEEN 절 대신 AND 연산자로 범위 내 값 조회하기

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)을 포함하여 조회하며, 상황에 따라 가독성이나 쿼리 최적화 관점에서 선호되는 방식을 선택하면 됩니다.