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

MySQL에서 빈 열에 사용자 정의 텍스트를 표시하는 방법

MySQL에서 데이터를 조회할 때 열에 빈 문자열('')이 저장되어 있는 경우, 그대로 두지 않고 'Not Applicable'처럼 원하는 텍스트로 대체하여 표시해야 하는 경우가 자주 있습니다. 이럴 때 IF() 함수를 사용하면 아주 간단하게 해결할 수 있습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
-> (
-> FirstName varchar(20)
-> );
Query OK, 0 rows affected (0.77 sec)

2. 레코드 삽입하기

INSERT 명령을 사용하여 이름 값과 함께 일부러 빈 문자열도 포함한 레코드를 삽입합니다.

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('');
Query OK, 1 row affected (0.13 sec)

3. 전체 레코드 조회하기

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

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다. 두 번째와 다섯 번째 행의 FirstName 값이 비어 있는 것을 확인할 수 있습니다.

+-----------+
| FirstName |
+-----------+
| Chris |
| |
| David |
| Bob |
| |
+-----------+
5 rows in set (0.00 sec)

4. IF() 함수로 빈 열에 사용자 정의 텍스트 표시하기

다음은 빈 열에 사용자 정의 텍스트를 표시하는 핵심 쿼리입니다. IF(조건, 참일 때 값, 거짓일 때 값) 형식으로 작성하며, FirstName이 빈 문자열이면 'Not Applicable'을, 그렇지 않으면 원래 값을 반환합니다.

mysql> select if(FirstName='','Not Applicable',FirstName) as Status from DemoTable;

실행 결과는 다음과 같습니다. 빈 값이던 행들이 'Not Applicable'로 깔끔하게 표시된 것을 볼 수 있습니다.

+----------------+
| Status |
+----------------+
| Chris |
| Not Applicable |
| David |
| Bob |
| Not Applicable |
+----------------+
5 rows in set (0.00 sec)

참고 사항

IF() 함수 외에도 CASE WHEN 문이나 COALESCE(), NULLIF() 등의 함수를 활용하면 NULL 값 처리나 더 복잡한 조건 분기도 손쉽게 구현할 수 있습니다. 특히 NULL과 빈 문자열('')은 서로 다른 값이므로, 상황에 맞게 조건을 지정하는 것이 중요합니다.