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을 사용하는 것이 효율적입니다.