MySQL-এ কলাম মান NULL বা ০ হলে মাত্র আপডেট করতে (নন-জিরো/নন-নাল মান অপরিবর্তিত রেখে) UPDATE ... SET col = IF(condition, newVal, col) প্যাটার্ন ব্যবহার করা হয়।
উদাহরণ
১. টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable1592 (StudentMarks INT);
২. NULL, ০, এবং নন-জিরো মান মিশ্রিত ইনসার্ট করুন
mysql> INSERT INTO DemoTable1592 VALUES(56), (NULL), (98), (0), (75), (NULL);
৩. বর্তমান রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable1592;
আউটপুট:
+--------------+
| StudentMarks |
+--------------+
| 56 |
| NULL |
| 98 |
| 0 |
| 75 |
| NULL |
+--------------+
৪. NULL বা ০ হলে ৩৩ সেট করুন, অন্যথায় অপরিবর্তিত রাখুন
mysql> UPDATE DemoTable1592
-> SET StudentMarks = IF(StudentMarks IS NULL OR StudentMarks = 0, 33, StudentMarks);
৫. আপডেট পরের রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable1592;
আউটপুট:
+--------------+
| StudentMarks |
+--------------+
| 56 |
| 33 |
| 98 |
| 33 |
| 75 |
| 33 |
+--------------+
ব্যাখ্যা: ৫৬, ৯৮, ৭৫ - অপরিবর্তিত। NULL (২টি) এবং ০ (১টি) - ৩৩ হয়ে গেছে। Rows matched: 6, Changed: 3।
বিকল্প সিনট্যাক্স (CASE):
UPDATE DemoTable1592
SET StudentMarks = CASE
WHEN StudentMarks IS NULL OR StudentMarks = 0 THEN 33
ELSE StudentMarks
END;
WHERE ক্লজ দিয়ে অপ্টিমাইজ (পারফরম্যান্স):
UPDATE DemoTable1592
SET StudentMarks = 33
WHERE StudentMarks IS NULL OR StudentMarks = 0;
এটি শুধু প্রয়োজনীয় রো আপডেট করে (ইনডেক্স ব্যবহার সম্ভব), IF()-এর চেয়ে দ্রুত।