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

MySQL에서 NULL 값 여부에 따라 새 열에 사용자 정의 텍스트 표시하는 방법

MySQL에서 특정 열의 값이 NULL인지 아닌지에 따라 새로운 열에 원하는 텍스트를 출력해야 하는 경우가 종종 있습니다. 이럴 때 IF() 함수를 활용하면 간단하게 해결할 수 있습니다. 이번 글에서는 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

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

StudentName이라는 varchar 타입의 열 하나를 가진 테이블을 만들었습니다.

2. 샘플 데이터 삽입하기

다음으로 insert 명령을 사용하여 일부 레코드를 삽입합니다. 이때 의도적으로 NULL 값도 함께 넣어줍니다.

mysql> insert into DemoTable1953 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1953 values(NULL);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1953 values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1953 values(NULL);
Query OK, 1 row affected (0.00 sec)

총 4개의 레코드를 삽입했으며, 그중 2개는 NULL 값입니다.

3. 전체 레코드 조회하기

select 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select * from DemoTable1953;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------------+
| StudentName |
+-------------+
| Chris       |
| NULL        |
| David       |
| NULL        |
+-------------+
4 rows in set (0.00 sec)

4. NULL 값 기반으로 사용자 정의 텍스트 표시하기

이제 핵심 부분입니다. IF() 함수를 사용하면 조건에 따라 다른 텍스트를 새 열에 표시할 수 있습니다. 조건식으로 StudentName IS NULL을 사용하여 해당 값이 NULL인지 판단하고, 그 결과에 따라 서로 다른 메시지를 반환합니다.

mysql> select StudentName,
IF(StudentName IS NULL,'Student Name Is Not Found','Student Name Found') as Name 
from DemoTable1953;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------------+---------------------------+
| StudentName | Name                      |
+-------------+---------------------------+
| Chris       | Student Name Found        |
| NULL        | Student Name Is Not Found |
| David       | Student Name Found        |
| NULL        | Student Name Is Not Found |
+-------------+
4 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 Name이라는 별칭(alias)을 가진 새로운 열이 추가된 것을 확인할 수 있습니다.

  • StudentName이 'Chris' 또는 'David'인 경우: 값이 존재하므로 'Student Name Found'가 표시됩니다.
  • StudentName이 NULL인 경우: 'Student Name Is Not Found'가 표시됩니다.

참고: COALESCE()와의 차이점

NULL 처리에는 COALESCE()IFNULL() 함수도 자주 사용됩니다. 하지만 이 함수들은 NULL을 다른 으로 대체할 때 유용한 반면, 위 예제처럼 NULL 여부에 따라 완전히 다른 텍스트 메시지를 보여주려면 IF() 함수가 더 적합합니다.

이처럼 MySQL의 IF() 함수와 IS NULL 조건을 조합하면, 데이터의 상태를 직관적으로 보여주는 가독성 높은 결과 집합을 손쉽게 만들 수 있습니다.