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

MySQL에서 NULL 값이 아닌 레코드만 조회하는 방법

MySQL에서 NULL이 아닌 데이터 선택하기

MySQL에서 NULL 값이 포함되지 않은 레코드만 조회하려면 IS NOT NULL 조건을 사용하면 됩니다. 이 조건은 특정 컬럼의 값이 NULL이 아닌 행만 필터링하여 반환합니다.

실제 동작 과정을 확인하기 위해 먼저 테이블을 생성해 보겠습니다.

1. 테이블 생성

mysql> create table DemoTable1792
    (
    Name varchar(20)
    );
Query OK, 0 rows affected (0.00 sec)

위 쿼리는 Name이라는 varchar(20) 타입의 컬럼 하나를 가진 테이블을 생성합니다.

2. 샘플 데이터 삽입

insert 명령을 사용해 일부 레코드를 입력합니다. 의도적으로 NULL 값도 함께 넣어 차이를 확인할 수 있도록 합니다.

mysql> insert into DemoTable1792 values('John Smith');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1792 values(NULL);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1792 values('David Miller');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1792 values(NULL);
Query OK, 1 row affected (0.00 sec)

3. 전체 데이터 확인

select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1792;

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

+--------------+
| Name         |
+--------------+
| John Smith   |
| NULL         |
| David Miller |
| NULL         |
+--------------+
4 rows in set (0.00 sec)

총 4개의 레코드 중 2개가 NULL 값임을 확인할 수 있습니다.

4. IS NOT NULL로 NULL 제외하고 조회

NULL 레코드를 제외한 데이터만 선택하는 쿼리는 다음과 같습니다.

mysql> select * from DemoTable1792 where Name IS NOT NULL;

실행 결과:

+--------------+
| Name         |
+--------------+
| John Smith   |
| David Miller |
+--------------+
2 rows in set (0.00 sec)

정리

WHERE 절에 IS NOT NULL을 사용하면 해당 컬럼에 실제 값이 존재하는 레코드만 간단히 조회할 수 있습니다. 반대로 NULL인 레코드만 찾고 싶다면 IS NULL을 사용하면 됩니다. 참고로 Name != NULL이나 Name <> NULL 같은 비교 연산자는 NULL 비교에서 항상 UNKNOWN을 반환하므로 작동하지 않으므로, 반드시 IS NOT NULL 구문을 사용해야 합니다.