MySQL-এ শর্তসাপেক্ষে ডেটা আপডেট করতে IF() ফাংশন বা CASE এক্সপ্রেশন ব্যবহার করা যায়। IF() সহজ кейসের জন্য আদর্শ।
IF() ফাংশন সিনট্যাক্স
UPDATE table_name
SET column_name = IF(column_name = old_value, new_value, column_name);
উদাহরণ: ২৩ বছর বয়সকে ২৬ করুন
CREATE TABLE update_demo (
user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(20),
user_age INT
);
INSERT INTO update_demo (user_name, user_age) VALUES
('Larry', 23), ('Mike', 21), ('Sam', 23), ('David', 23), ('Maxwell', 23);
আপডেট ক্যোয়ারি
UPDATE update_demo
SET user_age = IF(user_age = 23, 26, user_age);
ফলাফল
+---------+-----------+---------+
| user_id | user_name | user_age|
+---------+-----------+---------+
| 1 | Larry | 26 |
| 2 | Mike | 21 |
| 3 | Sam | 26 |
| 4 | David | 26 |
| 5 | Maxwell | 26 |
+---------+-----------+---------+
CASE এক্সপ্রেশন (বহু শর্তের জন্য)
UPDATE update_demo
SET user_age = CASE
WHEN user_age = 23 THEN 26
WHEN user_age = 21 THEN 25
ELSE user_age
END;
WHERE ক্লজ সহ (পারফরম্যান্সের জন্য ভালো)
UPDATE update_demo
SET user_age = 26
WHERE user_age = 23;
টিপ: সিম্পল শর্তের জন্য WHERE ক্লজই সবচেয়ে দ্রুত ও পঠনযোগ্য। জটিল লজিকের জন্য CASE ব্যবহার করুন।
বहু কলাম আপডেট একসাথে
UPDATE users
SET status = IF(last_login < DATE_SUB(NOW(), INTERVAL 1 YEAR), 'inactive', 'active'),
last_updated = NOW()
WHERE id > 0;