কম্পিউটার টিউটোরিয়াল

MySQL에서 컬럼 합산 시 조건부 포함(IF 함수 활용)

IF(조건, 참값, 거짓값)을 SELECT 절에서 사용하면 컬럼 값을 조건부로 합산에 포함할 수 있습니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable (
    -> Value1 INT,
    -> Value2 INT,
    -> Value3 INT
    -> );
Query OK, 0 rows affected (0.64 sec)
mysql> INSERT INTO DemoTable VALUES(10,20,-30);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES(50,60,90);
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable VALUES(100,200,400);
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES(30,40,-50);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES(70,80,-1);
Query OK, 1 row affected (0.24 sec)

데이터 조회

mysql> SELECT * FROM DemoTable;
+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
|     10 |     20 |    -30 |
|     50 |     60 |     90 |
|    100 |    200 |    400 |
|     30 |     40 |    -50 |
|     70 |     80 |     -1 |
+--------+--------+--------+
5 rows in set (0.00 sec)

Value3이 양수일 때만 합산에 포함

mysql> SELECT Value1 + Value2 + IF(Value3 > 0, Value3, 0) FROM DemoTable;
+---------------------------------------+
| Value1+Value2+IF(Value3>0,Value3,0)   |
+---------------------------------------+
|                                    30 |
|                                   200 |
|                                   700 |
|                                    70 |
|                                   150 |
+---------------------------------------+
5 rows in set (0.00 sec)

해설: 1행: 10+20+0=30 (Value3=-30 제외), 2행: 50+60+90=200, 3행: 100+200+400=700, 4행: 30+40+0=70, 5행: 70+80+0=150. IF()는 MySQL 전용이며, 표준 SQL은 CASE WHEN Value3 > 0 THEN Value3 ELSE 0 END입니다.

  1. MySQL-এ কলাম মান শাফল করা

  2. MySQL에서 0/1 컬럼 여러 개를 CASE WHEN으로 종합 판단하기

  3. MySQL-এ প্রথম ৩ রোয়ের কলাম মান নির্দিষ্ট মান দিয়ে আপডেট করা

  4. MySQL-এ ENUM টাইপ ব্যবহার করে কলাম মান সীমাবদ্ধ করা