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

MySQL 쿼리에서 NULL을 확인하는 방법: IS NULL 연산자 완벽 가이드

MySQL에서 특정 열의 값이 NULL인지 확인하려면 IS NULL 연산자를 사용해야 합니다. 많은 초보 개발자가 =(비교 연산자)로 NULL을 비교하려고 하지만, 이는 올바른 방법이 아닙니다. 그 이유는 NULL이 '값'이 아니라 '값이 존재하지 않음'을 나타내는 상태이기 때문입니다.

IS NULL 연산자를 사용한 NULL 확인 예제

다음은 'employee' 테이블의 데이터를 이용해 IS NULL 연산자의 동작을 보여주는 예제입니다.

mysql> Select * from Employee WHERE Salary IS NULL;
+----+-------+--------+
| ID | Name  | Salary |
+----+-------+--------+
| 7  | Aryan | NULL   |
| 8  | Vinay | NULL   |
+----+-------+--------+
2 rows in set (0.00 sec)

위 쿼리는 IS NULL 연산자를 사용하여 Salary(급여) 열이 NULL인 행들만 정상적으로 조회한 것을 볼 수 있습니다.

= 연산자로 NULL을 비교하면 안 되는 이유

mysql> Select * from employee where salary = NULL;
Empty set (0.00 sec)

반면 위 쿼리는 =(비교 연산자)를 사용했기 때문에 결과가 없는 빈 결과 집합(Empty set)을 반환합니다. NULL은 값이 아니므로 어떤 값과도 동등 비교(=)할 수 없으며, 심지어 NULL = NULL 조차 참(TRUE)으로 평가되지 않습니다.

따라서 MySQL에서 NULL 여부를 판단할 때는 반드시 IS NULL 또는 IS NOT NULL 연산자를 사용해야 합니다. 이 원칙만 기억하면 NULL 관련 쿼리 오류를 손쉽게 피할 수 있습니다.