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

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

여러 개의 0/1 플래그 컬럼을 합산해 조건부로 상태를 결정하려면 CASE WHEN 문을 사용합니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable (
    -> Value1 INT,
    -> Value2 INT,
    -> Value3 INT,
    -> Value4 INT
    -> );
Query OK, 0 rows affected (0.98 sec)
mysql> INSERT INTO DemoTable VALUES(1,0,1,1);
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable VALUES(1,0,1,0);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES(1,1,1,1);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES(0,0,0,0);
Query OK, 1 row affected (0.15 sec)

데이터 조회

mysql> SELECT * FROM DemoTable;
+--------+--------+--------+--------+
| Value1 | Value2 | Value3 | Value4 |
+--------+--------+--------+--------+
|      1 |      0 |      1 |      1 |
|      1 |      0 |      1 |      0 |
|      1 |      1 |      1 |      1 |
|      0 |      0 |      0 |      0 |
+--------+--------+--------+--------+
4 rows in set (0.00 sec)

합계가 2 미만이면 'NotGood', 아니면 'Good'

mysql> SELECT CASE WHEN Value1+Value2+Value3+Value4 < 2 THEN 'NotGood' ELSE 'Good' END AS Status FROM DemoTable;
+---------+
| Status  |
+---------+
| Good    |
| Good    |
| Good    |
| NotGood |
+---------+
4 rows in set (0.00 sec)

확장: CASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 ELSE 기본값 END로 다중 분기 가능합니다. IF()는 단일 조건만 가능하지만 CASE는 여러 조건을 순차 평가합니다.

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

  2. MySQL-এ UNION ALL ব্যবহার করে কাস্টম কলামের জন্য একাধিক মান সেট করা

  3. MySQL-এ IF ফাংশন ব্যবহার করে ENUM ভ্যালুর জন্য কাস্টম মেসেজ সেট করা

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