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

MySQL에서 WHERE 절로 두 열에 범위 조건을 설정하고 레코드 선택하기

MySQL에서 여러 열에 각각 다른 범위 조건을 적용해 원하는 레코드만 조회하려면 WHERE 절AND 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 두 개의 숫자 열에 서로 다른 조건을 설정하는 방법을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 두 개의 정수형 열을 가진 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Number1 int,
-> Number2 int
-> );
Query OK, 0 rows affected (3.73 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable values(40,50);
Query OK, 1 row affected (0.60 sec)

mysql> insert into DemoTable values(100,59);
Query OK, 1 row affected (0.56 sec)

mysql> insert into DemoTable values(400,500);
Query OK, 1 row affected (0.40 sec)

3. 전체 데이터 확인하기

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

mysql> select *from DemoTable;

출력 결과

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 40 | 50 |
| 100 | 59 |
| 400 | 500 |
+---------+---------+
3 rows in set (0.00 sec)

현재 총 3개의 레코드가 저장되어 있습니다.

4. 두 열에 범위 조건을 적용한 쿼리 실행하기

이제 핵심 부분입니다. 아래 쿼리는 Number1이 51 이상이면서 동시에 Number2가 1000 이하인 레코드만 선택합니다.

mysql> select *from DemoTable where Number1 >=51 and Number2 <=1000;

출력 결과

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 100 | 59 |
| 400 | 500 |
+---------+---------+
2 rows in set (0.00 sec)

결과 분석

조회 결과를 보면 첫 번째 레코드(40, 50)는 제외되었습니다. 그 이유는 Number1 값이 40으로 조건인 '51 이상'을 만족하지 못하기 때문입니다.

  • (100, 59): Number1 = 100 ≥ 51 ✓, Number2 = 59 ≤ 1000 ✓ → 조건 충족
  • (400, 500): Number1 = 400 ≥ 51 ✓, Number2 = 500 ≤ 1000 ✓ → 조건 충족

AND 연산자는 양쪽 조건을 모두 만족하는 행만 반환하므로, 두 열에 대한 복합적인 범위 필터링이 필요할 때 매우 유용합니다. 참고로 어느 하나라도 만족하면 되는 경우에는 OR 연산자를 대신 사용하면 됩니다.