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

MySQL에서 COALESCE로 NULL인 컬럼만 다른 컬럼 값으로 채우기

COALESCE(값1, 값2, ...)는 첫 번째 비NULL 값을 반환합니다. UPDATE에서 활용하면 NULL인 컬럼만 다른 컬럼 값으로 채울 수 있습니다.

테이블 생성 및 데이터 삽입

mysql> CREATE TABLE DemoTable1805 (
    -> Name1 VARCHAR(20),
    -> Name2 VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1805 VALUES('Chris',NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1805 VALUES('David','Mike');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1805 VALUES(NULL,'Mike');
Query OK, 1 row affected (0.00 sec)

업데이트 전

mysql> SELECT * FROM DemoTable1805;
+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| NULL  | Mike  |
+-------+-------+
3 rows in set (0.00 sec)

Name1이 NULL이면 Name2 값으로 채우기

mysql> UPDATE DemoTable1805 SET Name1 = COALESCE(Name1, Name2);
Query OK, 1 row affected (0.00 sec)
Rows matched: 3  Changed: 1  Warnings: 0

업데이트 후

mysql> SELECT * FROM DemoTable1805;
+-------+-------+
| Name1 | Name2 |
+-------+-------+
| Chris | NULL  |
| David | Mike  |
| Mike  | Mike  |
+-------+-------+
3 rows in set (0.00 sec)

핵심: 1행: Name1='Chris'(비NULL) → 변경 없음. 2행: Name1='David'(비NULL) → 변경 없음. 3행: Name1=NULL → Name2='Mike'로 채워짐. COALESCE는 표준 SQL이며 여러 인자 가능(COALESCE(a,b,c,'기본값')).

  1. MySQL-এ IF() ফাংশন ব্যবহার করে শুধু NULL বা ০ ভ্যালু কন্টেইনিং ফিল্ড আপডেট করুন

  2. MySQL-এ শুধু একটি কলাম আপডেট করা

  3. MySQL-এ একাধিক কলাম একসাথে আপডেট করা (সিঙ্গল কুয়েরি)

  4. MySQL-এ একসাথে দুটি কলাম আপডেট করা (সিঙ্গল কোয়েরি)