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

MySQL WHERE 절에서 OR 연산자로 여러 값 조회하는 방법

MySQL WHERE 절로 여러 값을 조회할 수 있을까?

결론부터 말하면 가능합니다. WHERE 절에서 여러 조건을 결합할 때는 OR 연산자를 사용하면 됩니다. 조건 중 하나라도 만족하는 행이 모두 결과에 포함됩니다. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.

1. 샘플 테이블 생성하기

먼저 예제에 사용할 직원 정보 테이블을 생성합니다.

mysql> create table DemoTable1421
    -> (
    -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName varchar(20),
    -> EmployeeSalary int
    -> );
Query OK, 0 rows affected (0.82 sec)

2. 데이터 삽입하기

INSERT 문을 사용하여 직원 레코드를 추가합니다.

mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Chris',10000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Bob',15000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('David',8000);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Carol',8500);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Mike',14500);
Query OK, 1 row affected (0.16 sec)

3. 전체 데이터 확인하기

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

mysql> select * from DemoTable1421;

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

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
|          1 | Chris       |          10000 |
|          2 | Bob         |          15000 |
|          3 | David       |           8000 |
|          4 | Carol       |           8500 |
|          5 | Mike        |          14500 |
+------------+--------------+----------------+
5 rows in set (0.00 sec)

4. OR 조건으로 여러 값 조회하기

이제 서로 다른 컬럼(직원 ID, 이름, 급여)에 대한 조건을 OR로 연결하여 여러 값을 한 번에 조회해 보겠습니다.

mysql> select * from DemoTable1421 where EmployeeId=1 OR EmployeeName='David' OR EmployeeSalary=14500;

조건 중 하나라도 일치하는 세 개의 행이 반환됩니다.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
|          1 | Chris       |          10000 |
|          3 | David       |           8000 |
|          5 | Mike        |          14500 |
+------------+--------------+----------------+
3 rows in set (0.00 sec)

추가 팁: IN 연산자 활용하기

같은 컬럼에 대해 여러 값을 비교할 때는 IN 연산자를 사용하는 것이 더 간결하고 가독성이 좋습니다. 예를 들어 위 쿼리를 ID 기준으로만 조회한다면 다음과 같이 작성할 수 있습니다.

mysql> select * from DemoTable1421 where EmployeeId IN (1, 3, 5);

정리하면, WHERE 절에서 서로 다른 컬럼의 조건을 결합할 때는 OR, 동일 컬럼의 여러 값을 비교할 때는 IN을 사용하는 것이 효율적입니다.