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

MySQL-এ UPDATE কোয়েরিতে CASE স্টেটমেন্ট ব্যবহার

MySQL-এ শর্তসাপেক্ষে আপডেট করতে UPDATE কোয়েরির ভিতরে CASE স্টেটমেন্ট ব্যবহার করা হয়। এটি একাধিক শর্তের ভিত্তিতে ভিন্ন ভিন্ন আপডেট করার সুবিধা দেয়।

টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserScore INT
    -> );
mysql> INSERT INTO DemoTable(UserScore) VALUES(100);
mysql> INSERT INTO DemoTable(UserScore) VALUES(110);
mysql> INSERT INTO DemoTable(UserScore) VALUES(120);
mysql> INSERT INTO DemoTable(UserScore) VALUES(200);
mysql> INSERT INTO DemoTable(UserScore) VALUES(230);
mysql> INSERT INTO DemoTable(UserScore) VALUES(250);
mysql> INSERT INTO DemoTable(UserScore) VALUES(270);

প্রাথমিক ডেটা

mysql> SELECT * FROM DemoTable;
+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       100 |
|      2 |       110 |
|      3 |       120 |
|      4 |       200 |
|      5 |       230 |
|      6 |       250 |
|      7 |       270 |
+--------+-----------+

CASE দিয়ে কন্ডিশনাল আপডেট

mysql> UPDATE DemoTable 
    -> SET UserScore = CASE 
    ->     WHEN UserScore BETWEEN 100 AND 120 THEN UserScore + 5
    ->     WHEN UserScore BETWEEN 130 AND 230 THEN UserScore + 10
    ->     WHEN UserScore >= 250 THEN UserScore * 5
    ->     ELSE UserScore
    -> END;

আপডেটের পর ডেটা

mysql> SELECT * FROM DemoTable;
+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       105 |
|      2 |       115 |
|      3 |       125 |
|      4 |       210 |
|      5 |       240 |
|      6 |      1250 |
|      7 |      1350 |
+--------+-----------+

ব্যাখ্যা:

  • ১০০-১২০ রেঞ্জ: +৫ যোগ
  • ১৩০-২৩০ রেঞ্জ: +১০ যোগ
  • ২৫০ বা বেশি: ৫ দিয়ে গুণ
  • অন্যান্য: অপরিবর্তিত

টিপস: CASE এক্সপ্রেশন SELECT-এও একইভাবে ব্যবহার করা যায়।

  1. Java-এ MySQL PreparedStatement দিয়ে SELECT কোয়েরি চালানো

  2. MySQL-এ TINYINT সহ UPDATE স্টেটমেন্ট ব্যবহার

  3. MySQL-এ UPDATE-এ সাবকুয়েরি (SELECT) ব্যবহার করা

  4. Python দিয়ে MySQL-এ IF স্টেটমেন্ট ব্যবহার করা