MySQL에서 NULL 값을 1로 표시하기
MySQL 테이블에 저장된 NULL 값을 조회할 때 실제 숫자 대신 1로 표시하고 싶은 경우가 있습니다. 이 글에서는 IFNULL() 함수와 UPDATE 문을 활용해 NULL 값을 1로 변환하는 방법을 단계별로 알아보겠습니다.
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1963
(
Counter int
);
Query OK, 0 rows affected (0.00 sec)2단계: 데이터 삽입
INSERT 명령을 사용하여 일부 레코드를 입력합니다. 이때 의도적으로 NULL 값도 함께 넣습니다.
mysql> insert into DemoTable1963 values(20); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1963 values(NULL); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1963 values(99); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1963 values(49); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1963 values(NULL); Query OK, 1 row affected (0.00 sec)
3단계: 전체 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1963;
실행 결과는 다음과 같습니다.
+---------+ | Counter | +---------+ | 20 | | NULL | | 99 | | 49 | | NULL | +---------+ 5 rows in set (0.00 sec)
현재 테이블에는 두 개의 NULL 값이 존재하는 것을 확인할 수 있습니다.
4단계: NULL 값을 1로 업데이트
이제 IFNULL() 함수와 IS NULL 조건을 조합하여 NULL 값을 1로 변경하는 쿼리를 실행합니다.
mysql> update DemoTable1963 set Counter=IFNULL(Counter,0)+1 where Counter IS NULL; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0
쿼리 설명:
where Counter IS NULL: Counter 컬럼이 NULL인 행만 대상으로 지정합니다.IFNULL(Counter,0)+1: Counter가 NULL이면 0으로 간주한 뒤 1을 더해, 결과적으로 NULL 자리에 1이 저장됩니다.
5단계: 최종 결과 확인
테이블의 레코드를 다시 한번 조회하여 변경 사항을 확인합니다.
mysql> select * from DemoTable1963;
실행 결과는 다음과 같습니다.
+---------+ | Counter | +---------+ | 20 | | 1 | | 99 | | 49 | | 1 | +---------+ 5 rows in set (0.00 sec)
참고: 데이터를 유지한 채 조회만 하고 싶다면?
실제 데이터를 수정하지 않고 조회 시에만 NULL을 1처럼 보여주고 싶다면, 테이블을 변경하지 않고 아래와 같이 SELECT 문에서 바로 처리할 수 있습니다.
mysql> select IFNULL(Counter, 1) AS Counter from DemoTable1963;
이 방식은 원본 데이터를 보존하면서 화면에 표시되는 값만 변경하므로, 상황에 따라 더 안전한 선택이 될 수 있습니다.
마무리
MySQL에서 NULL 값을 처리할 때는 IFNULL(), COALESCE(), CASE 문 등 다양한 함수를 활용할 수 있습니다. 위 예제처럼 UPDATE 문과 결합하면 기존 NULL 데이터를 손쉽게 원하는 값으로 일괄 변경할 수 있습니다.