কলামে NULL মান থাকলে সেটিকে ১ করতে এবং নন-নাল মানগুলো অপরিবর্তিত রাখতে (বা ১ যোগ করতে) IFNULL() ফাংশন সহ UPDATE ব্যবহার করা হয়।
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1963 (Counter INT); mysql> INSERT INTO DemoTable1963 VALUES (20), (NULL), (99), (49), (NULL);
আপডেটের আগে
mysql> SELECT * FROM DemoTable1963;
+---------+ | Counter | +---------+ | 20 | | NULL | | 99 | | 49 | | NULL | +---------+
কোয়ারী: শুধু NULL মানগুলোকে ১ করা
mysql> UPDATE DemoTable1963
SET Counter = IFNULL(Counter, 0) + 1
WHERE Counter IS NULL;
ব্যাখ্যা:
IFNULL(Counter, 0)— NULL হলে ০, নাহলে Counter মান।+ 1— ১ যোগ করে (০+১=১, নন-নালের জন্য বিদ্যমান+১)।WHERE Counter IS NULL— **শুধু NULL সারি আপডেট** (নন-নাল অপরিবর্তিত)।
আউটপুট: Query OK, 2 rows affected (0.00 sec)
আপডেটের পর
mysql> SELECT * FROM DemoTable1963;
+---------+ | Counter | +---------+ | 20 | | 1 | | 99 | | 49 | | 1 | +---------+
বিকল্প: CASE WHEN (আরও স্পষ্ট)
UPDATE DemoTable1963 SET Counter = CASE WHEN Counter IS NULL THEN 1 ELSE Counter END WHERE Counter IS NULL;
সতর্কতা
WHERE Counter IS NULLছাড়া আপডেট করলে সব সারির মান ১ বাড়ে যাবে।IFNULL(Counter, 0) + 1এক্সপ্রেশন নন-নাল সারিগুলোকেও ১ বাড়িয়ে দেবে যদি WHERE না থাকে।- প্রোডাকশনে
SELECT ... WHERE Counter IS NULLআগে চালিয়ে প্রভাবিত সারি নিশ্চিত করুন।
COALESCE() ব্যবহার (ANSI স্ট্যান্ডার্ড)
SET Counter = COALESCE(Counter, 0) + 1
COALESCE একাধিক আর্গুমেন্ট নেয়, IFNULL শুধু ২ টি।