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

MySQL WHERE 절에서 OR 연산자로 여러 조건의 열과 값 조회하기

MySQL에서 WHERE 절에 OR 연산자를 사용하면 여러 개의 서로 다른 조건을 결합하여 원하는 데이터를 유연하게 조회할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, OR 연산자를 활용해 학생 ID, 이름, 나이 등 각기 다른 열의 조건을 한 번의 쿼리로 처리하는 방법을 단계별로 살펴보겠습니다.

1. 예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성합니다. 아래 쿼리는 학생 정보를 저장하기 위한 DemoTable777 테이블을 만드는 예제입니다.

mysql> create table DemoTable777 (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100),
StudentAge int
);
Query OK, 0 rows affected (1.34 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 학생 레코드를 몇 개 추가합니다.

mysql> insert into DemoTable777(StudentName,StudentAge) values('Chris',23);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable777(StudentName,StudentAge) values('Robert',21);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable777(StudentName,StudentAge) values('Mike',19);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable777(StudentName,StudentAge) values('Bob',22);
Query OK, 1 row affected (0.19 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable777;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1 | Chris | 23 |
| 2 | Robert | 21 |
| 3 | Mike | 19 |
| 4 | Bob | 22 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

4. WHERE 절에서 OR로 여러 조건 조회하기

이제 핵심인 OR 연산자를 활용한 쿼리입니다. 아래 예제에서는 세 가지 서로 다른 조건을 OR로 연결했습니다.

  • StudentId IN(1,2) — 학생 ID가 1 또는 2인 경우
  • StudentName='Mike' — 이름이 Mike인 경우
  • StudentAge=22 — 나이가 22세인 경우

즉, 이 세 조건 중 하나라도 만족하는 모든 행이 결과에 포함됩니다.

mysql> select *from DemoTable777 where StudentId IN(1,2) OR StudentName='Mike' OR StudentAge=22;

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

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1 | Chris | 23 |
| 2 | Robert | 21 |
| 3 | Mike | 19 |
| 4 | Bob | 22 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

정리

WHERE 절에서 OR 연산자를 사용하면 서로 다른 열에 대한 조건들을 하나의 쿼리로 결합할 수 있습니다. 위 예제처럼 ID 목록(IN), 문자열 비교(=), 숫자 비교(=) 등 다양한 조건을 자유롭게 조합할 수 있어, 복잡한 검색 조건이 필요한 상황에서 매우 유용합니다. 참고로 AND 연산자와 달리 OR는 조건 중 하나만 충족되어도 해당 행을 반환하므로, 결과 집합이 의도보다 넓어지지 않도록 조건 설계에 주의하는 것이 좋습니다.