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

MySQL에서 한 열에 NULL과 빈 값 조건 두 가지 동시에 적용하는 방법

MySQL에서 하나의 열에 대해 NULL 값빈 문자열('')을 동시에 제외하고 데이터를 조회해야 하는 경우가 자주 있습니다. 이 글에서는 WHERE 절에 두 가지 조건을 함께 사용하여 원하는 결과를 얻는 방법을 예제와 함께 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable635(
    EmployeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName varchar(100)
);
Query OK, 0 rows affected (1.24 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 정상 값, 빈 문자열, NULL 값을 포함한 다양한 레코드를 삽입합니다.

mysql> insert into DemoTable635(EmployeeName) values('John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable635(EmployeeName) values('Sam');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable635(EmployeeName) values('');
Query OK, 1 row affected (0.38 sec)
mysql> insert into DemoTable635(EmployeeName) values(null);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable635(EmployeeName) values('David');
Query OK, 1 row affected (0.22 sec)

3. 전체 데이터 확인하기

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

mysql> select *from DemoTable635;

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

+-----------+--------------+
| EmployeId | EmployeeName |
+-----------+--------------+
|         1 | John         |
|         2 | Sam          |
|         3 |              |
|         4 | NULL         |
|         5 | David        |
+-----------+--------------+
5 rows in set (0.00 sec)

위 결과에서 3번 레코드는 빈 문자열(''), 4번 레코드는 NULL 값이 저장되어 있는 것을 확인할 수 있습니다.

4. NULL과 빈 값을 제외하는 쿼리 작성하기

NULL 값은 IS NOT NULL로, 빈 문자열은 <> ''(같지 않음 연산자)로 각각 필터링하며, 두 조건을 AND로 연결하면 됩니다.

mysql> select *from DemoTable635 tbl
        where tbl.EmployeeName is not null
        and tbl.EmployeeName <> '';

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

+-----------+--------------+
| EmployeId | EmployeeName |
+-----------+--------------+
|         1 | John         |
|         2 | Sam          |
|         5 | David        |
+-----------+--------------+
3 rows in set (0.02 sec)

정리

MySQL에서 특정 열의 NULL 값과 빈 문자열을 모두 제외하려면 다음 두 조건을 AND 연산자로 결합하면 됩니다.

  • 컬럼명 IS NOT NULL — NULL 값 제외
  • 컬럼명 <> '' — 빈 문자열 제외

참고로 MySQL에서 NULL은 비교 연산자로 직접 비교할 수 없기 때문에 반드시 IS NOT NULL을 사용해야 하며, 이 두 조건을 함께 사용해야 의도한 대로 유효한 데이터만 조회할 수 있습니다.