MySQL-এ IF() ফাংশন ব্যবহার করে নির্দিষ্ট রো বাদ দিয়ে বাকি সব রোর কলাম আপডেট করা যায়।
উদাহরণ
mysql> CREATE TABLE DemoTable736 (
CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
CustomerName VARCHAR(100),
isMarried BOOLEAN
);
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable736 (CustomerName, isMarried) VALUES
('Chris', 0), ('Robert', 0), ('David', 0), ('Mike', 0), ('Carol', 1), ('Bob', 0);
Query OK, 6 rows affected
সব রেকর্ড
mysql> SELECT * FROM DemoTable736;
+------------+--------------+-----------+ | CustomerId | CustomerName | isMarried | +------------+--------------+-----------+ | 1 | Chris | 0 | | 2 | Robert | 0 | | 3 | David | 0 | | 4 | Mike | 0 | | 5 | Carol | 1 | | 6 | Bob | 0 | +------------+--------------+-----------+
CustomerId=5 বাদ দিয়ে সবকে isMarried=1 করুন
mysql> UPDATE DemoTable736 SET isMarried = IF(CustomerId = 5, 1, 1); Query OK, 5 rows affected (0.13 sec)
ফলাফল
mysql> SELECT * FROM DemoTable736;
+------------+--------------+-----------+ | CustomerId | CustomerName | isMarried | +------------+--------------+-----------+ | 1 | Chris | 1 | | 2 | Robert | 1 | | 3 | David | 1 | | 4 | Mike | 1 | | 5 | Carol | 1 | -- অপরিবর্তিত (ইতিমধ্যে ১) | 6 | Bob | 1 | +------------+--------------+-----------+
ব্যাখ্যা
IF(CustomerId = 5, 1, 1)→ শর্ত সত্য হলে ১, মিথ্যা হলে ১ (এখানে দুটি ক্ষেত্রেই ১)- আসল ইউজকেস:
IF(CustomerId = 5, isMarried, 1)→ আইডি ৫ বাদ দিয়ে সবকে ১ করুন - বড় টেবিলে
WHERE CustomerId <> 5ব্যবহার করুন (দ্রুত, ইনডেক্স ব্যবহার করে)
সরল ও দ্রুত পদ্ধতি
UPDATE DemoTable736 SET isMarried = 1 WHERE CustomerId <> 5;