MySQL WHERE 절의 OR 연산자란?
OR 연산자는 여러 조건 중 하나라도 참(true)이면 전체 결과를 true로 반환하는 논리 연산자입니다. 즉, WHERE 절에서 두 개 이상의 조건을 결합할 때, 어느 하나만 만족해도 해당 행이 조회됩니다.
이제 실제 예제를 통해 테이블을 생성하고 OR 연산자를 활용하는 방법을 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 클라이언트 정보를 저장할 테이블을 생성합니다.
mysql> create table DemoTable663(ClientId int, ClientName varchar(100), ClientAge int); Query OK, 0 rows affected (0.55 sec)
2단계: 데이터 삽입
INSERT 명령어를 사용하여 테이블에 샘플 레코드를 추가합니다.
mysql> insert into DemoTable663 values(100,'Chris',45); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable663 values(101,'Robert',29); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable663 values(102,'John',45); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable663 values(103,'Chris',35); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable663 values(104,'Sam',45); Query OK, 1 row affected (0.72 sec)
3단계: 전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable663;
위 쿼리는 다음과 같은 결과를 출력합니다.
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 100 | Chris | 45 | | 101 | Robert | 29 | | 102 | John | 45 | | 103 | Chris | 35 | | 104 | Sam | 45 | +----------+------------+-----------+ 5 rows in set (0.00 sec)
4단계: OR 연산자로 조건부 조회
다음은 WHERE 절에서 OR 연산자를 사용한 쿼리입니다. 이 쿼리는 고객 이름이 'Chris'이거나 나이가 45세인 모든 행을 반환합니다.
mysql> select *from DemoTable663 where ClientName='Chris' OR ClientAge=45;
실행 결과는 다음과 같습니다.
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 100 | Chris | 45 | | 102 | John | 45 | | 103 | Chris | 35 | | 104 | Sam | 45 | +----------+------------+-----------+ 4 rows in set (0.00 sec)
결과 분석
출력 결과를 보면 원래 5개의 행 중 4개의 행만 조회되었습니다. 그 이유는 다음과 같습니다.
- ID 100 (Chris, 45): 이름 조건과 나이 조건 모두 충족
- ID 101 (Robert, 29): 두 조건 모두 불충족하여 제외됨
- ID 102 (John, 45): 나이 조건 충족
- ID 103 (Chris, 35): 이름 조건 충족
- ID 104 (Sam, 45): 나이 조건 충족
이처럼 OR 연산자는 각 조건을 개별적으로 평가하여, 하나라도 만족하는 행을 모두 반환합니다. AND 연산자가 모든 조건을 동시에 만족해야 하는 것과 대조적입니다.