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

MySQL-এ CASE স্টেটমেন্ট দিয়ে নির্দিষ্ট কলাম মান আপডেট করা

UPDATE কোয়েরির ভেতরে CASE স্টেটমেন্ট ব্যবহার করে শর্তভিত্তি ভিন্ন মান সেট করা যায়। নিচে Marks ৪৫ হলে ৯৮ এবং ৯৮ হলে ০ সেট করার উদাহরণ দেওয়া হলো।

টেবিল ও ডেটা তৈরি

mysql> CREATE TABLE DemoTable1925 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20),
    StudentMarks INT
);

mysql> INSERT INTO DemoTable1925 (StudentName, StudentMarks) VALUES
    ('Chris', 98), ('David', 45);

আপডেটের আগে

mysql> SELECT * FROM DemoTable1925;
+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
|         1 | Chris       |           98 |
|         2 | David       |           45 |
+-----------+-------------+--------------+

CASE সহ UPDATE কোয়েরি

mysql> UPDATE DemoTable1925
    SET StudentMarks = CASE StudentMarks
        WHEN 45 THEN 98
        WHEN 98 THEN 0
    END
    WHERE StudentMarks IN (45, 98);

আউটপুট: Query OK, 2 rows affected (0.00 sec)

আপডেটের পর

mysql> SELECT * FROM DemoTable1925;
+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
|         1 | Chris       |            0 |
|         2 | David       |           98 |
+-----------+-------------+--------------+

ব্যাখ্যা

  • CASE StudentMarks WHEN 45 THEN 98 WHEN 98 THEN 0 END — Simple CASE সিনট্যাক্স।
  • WHERE StudentMarks IN (45,98) — শুধু প্রাসঙ্গিক সারি আপডেট, পারফরম্যান্স বাড়ায়।
  • ELSE না থাকলে নন-ম্যাচিং সারি NULL হয়ে যাবে (যদি কলাম NULLable হয়) — সতর্ক থাকুন।

Searched CASE ভার্সন (জটিল শর্তের জন্য)

SET StudentMarks = CASE
    WHEN StudentMarks BETWEEN 0 AND 50 THEN StudentMarks + 10
    WHEN StudentMarks > 50 THEN StudentMarks - 5
    ELSE StudentMarks
END;
  1. MySQL-এ নির্দিষ্ট কলাম নামে টেবিল খুঁজে বের করা

  2. MySQL-এ নির্দিষ্ট অক্ষর দিয়ে শুরু হওয়া আলফানিউমেরিক স্ট্রিং থেকে সর্বোচ্চ সংখ্যা বের করা

  3. MySQL-এ নির্দিষ্ট কলামের মান সওয়াপ (Swap) করা

  4. MySQL LIKE কোয়েরিতে % (পার্সেন্ট) চিহ্ন সার্চ করা (Escape ব্যবহার করে)