MySQL에서 ! 연산자 대신 NOT 키워드를 사용하세요
MySQL에서 동일한 결과를 얻고자 한다면 ! 연산자를 사용하지 않는 것이 좋습니다. MySQL은 논리 부정을 위해 이미 NOT 키워드를 기본적으로 제공하기 때문입니다. 코드의 가독성과 호환성 측면에서도 NOT 키워드를 사용하는 것이 권장됩니다.
실제 예제를 통해 단계별로 확인해 보겠습니다. 먼저 테이블을 생성합니다.
mysql> create table DemoTable1560
-> (
-> Value1 int
-> );
Query OK, 0 rows affected (0.50 sec)
1. 레코드 삽입하기
insert 명령을 사용하여 테이블에 레코드를 삽입합니다.
mysql> insert into DemoTable1560 values(0);
Query OK, 1 row affected (0.16 sec)
2. 레코드 조회하기
select 문을 사용하여 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable1560;
위 쿼리는 다음과 같은 결과를 출력합니다.
+--------+
| Value1 |
+--------+
| 0 |
+--------+
1 row in set (0.00 sec)
3. NOT 키워드 활용하기
다음은 NOT 키워드를 사용하는 쿼리입니다.
mysql> select NOT (NOT Value1), NOT NOT Value1, NOT NOT Value1 from DemoTable1560;
실행 결과는 아래와 같습니다.
+------------------+----------------+----------------+
| NOT (NOT Value1) | NOT NOT Value1 | NOT NOT Value1 |
+------------------+----------------+----------------+
| 0 | 0 | 0 |
+------------------+----------------+----------------+
1 row in set (0.00 sec)
결과 분석
위 결과에서 확인할 수 있듯이, 값 0에 대해 NOT을 두 번 적용하면(이중 부정) 원래 값인 0이 그대로 반환됩니다. 즉, NOT NOT은 원래 값을 유지하며, 괄호를 사용한 NOT (NOT Value1) 형태와 동일한 결과를 보여줍니다.
결론적으로 MySQL에서 논리 부정 연산이 필요할 때는 비표준적인 ! 연산자보다 SQL 표준에 부합하는 NOT 키워드를 사용하는 것이 바람직합니다.