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

MySQL-এ IF() ফাংশন ব্যবহার করে শুধু NULL বা ০ ভ্যালু কন্টেইনিং ফিল্ড আপডেট করুন

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()-এর চেয়ে দ্রুত।

  1. MySQL-এ টেক্সট ফিল্ড থেকে শুধু সংখ্যা বের করার পদ্ধতি

  2. MySQL에서 NULL 또는 비NULL 여부로 전체 컬럼 업데이트하기

  3. MySQL에서 COALESCE로 NULL인 컬럼만 다른 컬럼 값으로 채우기

  4. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা