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

MySQL-এ SELECT স্টেটমেন্টে NULL মান প্রতিস্থাপন করার বিভিন্ন উপায় (IFNULL, COALESCE, CASE)


MySQL-এ SELECT কোয়েরিতে NULL মান প্রতিস্থাপন করার ৩টি পদ্ধতি

কোয়েরি রান করার সময় NULL মান অন্য কোনো ডিফল্ট মান দিয়ে দেখাতে চাইলে তিনটি পদ্ধতি ব্যবহার করা যায়: IFNULL(), COALESCE(), এবং CASE WHEN।

পদ্ধতি ১: IFNULL()

SELECT IFNULL(yourColumnName, 'defaultValue') AS AliasName FROM yourTableName;

পদ্ধতি ২: COALESCE()

SELECT COALESCE(yourColumnName, 'defaultValue') AS AliasName FROM yourTableName;

COALESCE একাধিক আর্গুমেন্ট নিতে পারে: COALESCE(col1, col2, col3, 'default') — প্রথম non-NULL মানটি রিটার্ন করে।

পদ্ধতি ৩: CASE WHEN

SELECT CASE WHEN yourColumnName IS NULL THEN 'defaultValue' ELSE yourColumnName END AS AliasName FROM yourTableName;

উদাহরণ

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

mysql> CREATE TABLE ReplaceNULLDemo (Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(10), Marks INT, PRIMARY KEY(Id));
mysql> INSERT INTO ReplaceNULLDemo(Name, Marks) VALUES('Larry', 90), ('Carol', NULL), ('David', NULL), ('Bob', 67), ('Sam', 78), ('Mike', NULL), ('John', 98);

আউটপুট (আসল)

+----+-------+-------+
| Id | Name  | Marks |
+----+-------+-------+
| 1  | Larry | 90    |
| 2  | Carol | NULL  |
| 3  | David | NULL  |
| 4  | Bob   | 67    |
| 5  | Sam   | 78    |
| 6  | Mike  | NULL  |
| 7  | John  | 98    |
+----+-------+-------+

কেস ১: IFNULL() — NULL কে 0 করুন

mysql> SELECT IFNULL(Marks, 0) AS ReplacementOfNULLWith0 FROM ReplaceNULLDemo;
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90                     |
| 0                      |
| 0                      |
| 67                     |
| 78                     |
| 0                      |
| 98                     |
+------------------------+

কেস ২: COALESCE() — NULL কে 0 করুন

mysql> SELECT COALESCE(Marks, 0) AS ReplacementOfNULLWith0 FROM ReplaceNULLDemo;
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90                     |
| 0                      |
| 0                      |
| 67                     |
| 78                     |
| 0                      |
| 98                     |
+------------------------+

কেস ৩: CASE WHEN — NULL কে 0 করুন

mysql> SELECT CASE WHEN Marks IS NULL THEN 0 ELSE Marks END AS ReplacementOfNULLWith0 FROM ReplaceNULLDemo;
+------------------------+
| ReplacementOfNULLWith0 |
+------------------------+
| 90                     |
| 0                      |
| 0                      |
| 67                     |
| 78                     |
| 0                      |
| 98                     |
+------------------------+

সারাংশ: IFNULL সরল ২ আর্গুমেন্টের জন্য। COALESCE একাধিক ফলব্যাকের জন্য। CASE জটিল লজিকের জন্য।

  1. MySQL-এ শুধুমাত্র NULL মান আপডেট করে অন্য মান দিয়ে প্রতিস্থাপন করা

  2. MySQL-এ MAX(DISTINCT ...) বনাম MAX(): পার্থক্য কী?

  3. একই MySQL SELECT স্টেটমেন্টে এলিয়াসের মান ব্যবহার করার পদ্ধতি

  4. MySQL-এ != NULL এবং IS NOT NULL-এর পার্থক্য