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

MySQL 단일 쿼리에서 WHERE, AND, OR를 함께 사용하는 방법

MySQL 단일 쿼리에서 WHERE, AND, OR를 함께 사용할 수 있을까요?

네, 가능합니다. MySQL에서는 WHERE, AND, OR 연산자를 모두 하나의 쿼리 안에서 자유롭게 조합해 사용할 수 있습니다. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
    (
    StudentId int,
    StudentFirstName varchar(20),
    StudentLastName varchar(20),
    StudentAge int
    );
Query OK, 0 rows affected (0.53 sec)

2. 데이터 삽입

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

mysql> insert into DemoTable values(100,'John','Smith',23);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(101,'Carol','Taylor',24);
Query OK, 1 row affected (0.62 sec)
mysql> insert into DemoTable values(103,'John','Doe',22);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values(104,'Adam','Smith',23);
Query OK, 1 row affected (0.18 sec)

3. 전체 데이터 확인

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

mysql> select *from DemoTable;

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

+-----------+------------------+-----------------+------------+
| StudentId | StudentFirstName | StudentLastName | StudentAge |
+-----------+------------------+-----------------+------------+
| 100 | John | Smith | 23 |
| 101 | Carol | Taylor | 24 |
| 103 | John | Doe | 22 |
| 104 | Adam | Smith | 23 |
+-----------+------------------+-----------------+------------+
4 rows in set (0.00 sec)

4. WHERE + AND + OR 조합 쿼리 실행

이제 단일 쿼리에서 세 가지 조건을 함께 사용해 원하는 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable
where StudentFirstName='John' AND StudentLastName='Doe' OR StudentAge=26;

위 쿼리는 다음과 같은 결과를 반환합니다.

+-----------+------------------+-----------------+------------+
| StudentId | StudentFirstName | StudentLastName | StudentAge |
+-----------+------------------+-----------------+------------+
| 103 | John | Doe | 22 |
+-----------+------------------+-----------------+------------+
1 row in set (0.00 sec)

연산자 우선순위 참고 사항

MySQL에서는 AND가 OR보다 먼저 평가됩니다. 따라서 위 쿼리는 (StudentFirstName='John' AND StudentLastName='Doe') OR StudentAge=26과 동일하게 해석됩니다. 복잡한 조건을 다룰 때는 괄호를 명시적으로 사용하면 의도한 결과를 정확히 얻을 수 있고, 쿼리의 가독성도 크게 향상됩니다.