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

MySQL-এ শর্তসাপেক্ষে ১ বিয়োগ করা: ফিল্ড ভ্যালু ০-এর চেয়ে বড় হলে

MySQL-এ CASE স্টেটমেন্ট সহ UPDATE কমান্ড ব্যবহার করে আপনি শর্তসাপেক্ষে কোনো কলামের মান আপডেট করতে পারেন। নিচে উদাহরণ দেওয়া হলো যেখানে Value কলামের মান ০-এর চেয়ে বড় হলে সেটি থেকে ১ বিয়োগ করা হয়েছে।

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

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value INT
);
Query OK, 0 rows affected (1.44 sec)
mysql> INSERT INTO DemoTable(Value) VALUES(100), (0), (104), (0), (5), (10), (0);
Query OK, 7 rows affected

আপডেট করার আগের ডেটা

+----+-------+
| Id | Value |
+----+-------+
| 1  | 100   |
| 2  | 0     |
| 3  | 104   |
| 4  | 0     |
| 5  | 5     |
| 6  | 10    |
| 7  | 0     |
+----+-------+

শর্তসাপেক্ষ আপডেট কোয়েরি

mysql> UPDATE DemoTable 
       SET Value = CASE 
           WHEN Value > 0 THEN Value - 1 
           ELSE 0 
       END;
Query OK, 4 rows affected (0.25 sec)

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

+----+-------+
| Id | Value |
+----+-------+
| 1  | 99    |
| 2  | 0     |
| 3  | 103   |
| 4  | 0     |
| 5  | 4     |
| 6  | 9     |
| 7  | 0     |
+----+-------+

ব্যাখ্যা: CASE WHEN Value > 0 THEN Value-1 ELSE 0 END এক্সপ্রেশনটি প্রতিটি রোয়ের জন্য চেক করে যে Value ০-এর চেয়ে বড় কিনা। যদি হয়, তবে ১ বিয়োগ করে; না হলে ০ রেখে দেয়।

  1. MySQL-এ @ চিহ্ন ব্যবহার করে ইউজার-ডিফাইনড ভেরিয়েবল ডিক্লেয়ার ও ব্যবহার

  2. MySQL-এ সঠিক স্ট্রিং মান খুঁজে বের করা (COLLATE ব্যবহার)

  3. MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল ব্যবহার করে এক কলাম থেকে অন্য কলামের মান ডিরাইভ করা (রানিং টোটাল)

  4. MySQL-এ ORDER BY ব্যবহার করে নির্দিষ্ট মানকে শেষে সর্ট করা