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

MySQL-এ IFNULL() দিয়ে NULL মানকে ১ এবং নন-নালকে ১ যোগ করে আপডেট করা

কলামে 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 শুধু ২ টি।

  1. MySQL-এ ব্ল্যাংক (খালি) মান গুলো NULL-এ আপডেট করা

  2. MySQL-এ IFNULL() ব্যবহার করে NULL মানকে নির্দিষ্ট ভ্যালু ('Robert') দিয়ে রিপ্লেস করা

  3. MySQL-এ IF() ফাংশন দিয়ে NOT NULL মান માટે ১ এবং NULL জন্য ০ দেখানো

  4. Java-এ JDBC ResultSet ব্যবহার করে MySQL টেবিলের ডেটা দেখানো