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

MySQL UPDATE문에서 IF문으로 조건부 업데이트하기

UPDATE 문에서 IF() 함수를 사용하면 조건에 따라 다른 값으로 컬럼을 업데이트할 수 있습니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> StudentMarks INT,
    -> Status VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.97 sec)
mysql> INSERT INTO DemoTable(StudentName,StudentMarks) VALUES('Chris',79);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(StudentName,StudentMarks) VALUES('David',59);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable(StudentName,StudentMarks) VALUES('Bob',60);
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable(StudentName,StudentMarks) VALUES('Mike',45);
Query OK, 1 row affected (0.16 sec)

업데이트 전 데이터

mysql> SELECT * FROM DemoTable;
+-----------+-------------+--------------+--------+
| StudentId | StudentName | StudentMarks | Status |
+-----------+-------------+--------------+--------+
|         1 | Chris       |           79 | NULL   |
|         2 | David       |           59 | NULL   |
|         3 | Bob         |           60 | NULL   |
|         4 | Mike        |           45 | NULL   |
+-----------+-------------+--------------+--------+
4 rows in set (0.00 sec)

조건부 업데이트 실행 (60점 초과면 PASS, 아니면 FAIL)

mysql> UPDATE DemoTable
    -> SET Status = IF(StudentMarks > 60, 'PASS', 'FAIL');
Query OK, 4 rows affected (0.40 sec)
Rows matched: 4  Changed: 4  Warnings: 0

업데이트 후 데이터

mysql> SELECT * FROM DemoTable;
+-----------+-------------+--------------+--------+
| StudentId | StudentName | StudentMarks | Status |
+-----------+-------------+--------------+--------+
|         1 | Chris       |           79 | PASS   |
|         2 | David       |           59 | FAIL   |
|         3 | Bob         |           60 | FAIL   |
|         4 | Mike        |           45 | FAIL   |
+-----------+-------------+--------------+--------+
4 rows in set (0.00 sec)

참고: IF(조건, 참값, 거짓값)은 MySQL 전용 함수입니다. 표준 SQL인 CASE WHEN ... THEN ... ELSE ... END도 사용 가능하며, 복잡한 조건엔 CASE가 더 적합합니다.

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

  2. MySQL-এ RLIKE ব্যবহার করে একাধিক শব্দ দিয়ে রেকর্ড ফিল্টার করা

  3. MySQL-এ ENUM সেট করা স্ট্যাটাস কলাম থেকে ACTIVE রেকর্ড বের করা

  4. Apache-এ MySQL ব্যবহার (Using MySQL with Apache)