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

MySQL에서 IF() 함수로 0 값을 원하는 값으로 변환하는 방법

MySQL에서 테이블에 저장된 0 값을 다른 특정 값으로 일괄 변경하고 싶다면, ISNULL()과 비슷한 역할을 하는 IF() 함수를 활용할 수 있습니다. IF() 함수는 조건이 참일 때와 거짓일 때 각각 다른 값을 반환하므로, 값이 0일 때만 원하는 값으로 치환하는 로직을 손쉽게 구현할 수 있습니다.


1. 샘플 테이블 생성

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

mysql> create table DemoTable749 (Value int);
Query OK, 0 rows affected (1.02 sec)

2. 데이터 삽입

INSERT 명령어를 사용해 0 값을 포함한 여러 레코드를 삽입합니다.

mysql> insert into DemoTable749 values(10);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable749 values(0);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable749 values(769);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable749 values(0);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable749 values(78);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable749 values(0);
Query OK, 1 row affected (0.17 sec)

3. 전체 레코드 조회

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable749;

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

+-------+
| Value |
+-------+
| 10 |
| 0 |
| 769 |
| 0 |
| 78 |
| 0 |
+-------+
6 rows in set (0.00 sec)

4. IF() 함수로 0 값 변환하기

이제 IF() 함수를 사용해 값이 0이면 100000으로, 그렇지 않으면 원래 값을 그대로 반환하는 쿼리를 작성합니다.

mysql> select *,if(Value=0,100000,Value) from DemoTable749;

실행 결과를 보면 0이었던 값들이 모두 100000으로 변환된 것을 확인할 수 있습니다.

+-------+--------------------------+
| Value | if(Value=0,100000,Value) |
+-------+--------------------------+
| 10 | 10 |
| 0 | 100000 |
| 769 | 769 |
| 0 | 100000 |
| 78 | 78 |
| 0 | 100000 |
+-------+--------------------------+
6 rows in set (0.00 sec)

참고 사항

위 예제는 SELECT 문에서 0 값을 변환하여 보여주는 방식입니다. 만약 테이블의 실제 데이터를 영구적으로 수정하려면 UPDATE 문과 함께 IF() 또는 CASE 표현식을 사용하면 됩니다. 예를 들어 UPDATE DemoTable749 SET Value = 100000 WHERE Value = 0;처럼 WHERE 절로 0인 행만 골라 업데이트하는 것이 가장 간단하고 효율적인 방법입니다.