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

MySQL에서 컬럼이 NULL 또는 빈 값인지 확인하는 방법

MySQL에서 특정 컬럼이 NULL인지 아니면 빈 문자열('')인지 확인하려면 WHERE 절과 함께 IS NULL 조건을 사용하고, 빈 값의 경우 ''(빈 문자열) 조건을 사용하면 됩니다.

NULL과 빈 문자열은 서로 다른 개념입니다. NULL은 '값이 존재하지 않음'을 의미하는 반면, 빈 문자열은 길이가 0인 실제 값이 저장된 상태를 의미합니다. 따라서 두 가지를 모두 확인하려면 OR 조건으로 결합해야 합니다.

1. 테이블 생성

먼저 CREATE 명령으로 테스트용 테이블을 생성합니다.

mysql> CREATE table ColumnValueNullDemo
-> (
-> ColumnName varchar(100)
-> );
Query OK, 0 rows affected (0.61 sec)

2. 빈 값 삽입 및 조회

INSERT 명령을 사용해 테이블에 빈 값을 삽입합니다.

mysql> INSERT into ColumnValueNullDemo values(' ');
Query OK, 1 row affected (0.14 sec)

SELECT 명령으로 테이블의 레코드를 조회합니다.

mysql> SELECT * from ColumnValueNullDemo;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------------------+
| ColumnName |
+-------------------+
| |
+-------------------+
1 row in set (0.00 sec)

3. NULL 또는 빈 값 확인 쿼리

컬럼이 NULL인지 빈 값인지 확인하는 기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName
WHERE yourSpecificColumnName IS NULL
OR yourSpecificColumnName = '';

IS NULL은 컬럼 값이 NULL일 때 참이 되고, ''(빈 문자열) 비교 조건은 값이 비어 있을 때 참이 됩니다.

이 문법을 실제 테이블에 적용한 쿼리는 다음과 같습니다.

mysql> SELECT * FROM ColumnValueNullDemo
WHERE ColumnName IS NULL OR ColumnName = '';

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

+------------+
| ColumnName |
+------------+
| |
+------------+
1 row in set (0.00 sec)

빈 값이 두 번째 조건('' 비교)에 해당하기 때문에 위와 같은 결과가 반환된 것입니다.

4. NULL 값 추가 후 확인

이번에는 INSERT 명령으로 NULL 값을 테이블에 삽입합니다.

mysql> INSERT into ColumnValueNullDemo values();
Query OK, 1 row affected (0.14 sec)

SELECT 명령으로 테이블 내용을 다시 확인합니다.

mysql> SELECT * from ColumnValueNullDemo;

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

+------------+
| ColumnName |
+------------+
| |
| NULL |
+------------+
2 rows in set (0.00 sec)

이제 NULL 또는 빈 값을 확인하는 조건을 적용해 봅니다.

mysql> SELECT * FROM ColumnValueNullDemo
WHERE ColumnName IS NULL OR ColumnName = '';

두 조건이 각각의 행에 대해 참이 되므로 테이블의 두 행이 모두 출력됩니다.

+------------+
| ColumnName |
+------------+
| |
| NULL |
+------------+
2 rows in set (0.00 sec)

참고: 공백이 포함된 값 처리

컬럼에 공백만 있는 값(예: ' ')이 저장되어 있을 수도 있습니다. 이런 경우까지 처리하려면 TRIM 함수를 함께 사용하는 것이 좋습니다.

SELECT * FROM yourTableName
WHERE yourSpecificColumnName IS NULL
OR TRIM(yourSpecificColumnName) = '';

이렇게 하면 NULL, 빈 문자열, 공백만 있는 값을 한 번에 걸러낼 수 있어 데이터 검증 시 유용하게 활용할 수 있습니다.