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

MySQL에서 IN 절과 함께 XOR 연산자 사용하는 방법

MySQL의 XOR 연산자는 두 피연산자(또는 표현식) 중 하나만 참(TRUE)일 때 참을 반환하고, 둘 다 참이거나 둘 다 거짓인 경우에는 거짓(FALSE)을 반환합니다. 반면 IN 절은 MySQL 쿼리에서 특정 값 목록에 대한 조건을 지정할 때 사용됩니다.

이 글에서는 IN 절과 XOR 연산자를 함께 활용하는 방법을 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 아래와 같이 두 개의 정수 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Num1 int,
-> Num2 int
-> );
Query OK, 0 rows affected (0.61 sec)

2. 데이터 삽입하기

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

mysql> insert into DemoTable values(5,5);
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values(6,6);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values(7,7);
Query OK, 1 row affected (0.15 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable;

출력 결과

+------+------+
| Num1 | Num2 |
+------+------+
| 5    | 5    |
| 6    | 6    |
| 7    | 7    |
+------+------+
3 rows in set (0.00 sec)

4. XOR과 IN 절 함께 사용하기

다음은 MySQL에서 XOR 연산자와 IN 절을 조합하여 WHERE 조건을 구성한 쿼리입니다.

mysql> select Num1,Num2 from DemoTable where ( Num1 IN (5,6,7 ) XOR Num2 IN ( 16, 16, 16 ) );

출력 결과

+------+------+
| Num1 | Num2 |
+------+------+
| 5    | 5    |
| 6    | 6    |
| 7    | 7    |
+------+------+
3 rows in set (0.00 sec)

결과 분석

모든 행이 결과에 포함된 이유는 다음과 같습니다. 각 행에서 Num1 IN (5,6,7) 조건은 참(TRUE)이고, Num2 IN (16,16,16) 조건은 거짓(FALSE)입니다. XOR은 두 조건 중 정확히 하나만 참일 때 참을 반환하므로, '참 XOR 거짓'이 되어 세 개의 행 모두 최종 결과에 포함되었습니다.

만약 두 조건이 모두 참이거나 모두 거짓이라면 해당 행은 결과에서 제외됩니다. 이러한 특성을 활용하면 상호 배타적인 조건 검사가 필요한 쿼리를 간결하게 작성할 수 있습니다.