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

MySQL-এ NOT EQUAL অপারেটর (<>) NULL মান থাকলে কাজ না করলে সমাধান

MySQL-এ `<>` (নট ইকুয়াল) অপারেটর NULL মানের সাথে কাজ করে না। NULL যেকোনো মানের সাথে তুলনায় `UNKNOWN` রিটার্ন করে। NULL হ্যান্ডল করতে `IS NOT NULL` বা `IS NULL` ব্যবহার করুন।

সমস্যা ও সমাধান

-- সমস্যা: NULL রো গুলো ফিল্টার হয় না
SELECT * FROM yourTable WHERE col <> 2; -- NULL রো গুলো আসবে না

-- সমাধান ১: NULL বাদ দিতে (IS NOT NULL)
SELECT * FROM yourTable WHERE col IS NOT NULL OR col <> 2;

-- সমাধান ২: NULL ও রাখতে (IS NULL)
SELECT * FROM yourTable WHERE col IS NULL OR col <> 2;

উদাহরণ

mysql> CREATE TABLE IsNullDemo (ProductId INT, ProductName VARCHAR(100), ProductBackOrder INT);
mysql> INSERT INTO IsNullDemo VALUES 
    -> (100,'First-Product',NULL), (101,'Second-Product',2), (102,'Third-Product',NULL),
    -> (103,'Fourth-Product',4), (104,'Fifth-Product',10), (105,'Sixth-Product',NULL);

-- Case 1: NULL বাদ (IS NOT NULL)
mysql> SELECT * FROM IsNullDemo WHERE ProductBackOrder IS NOT NULL OR ProductBackOrder <> 2;
+-----------+----------------+------------------+
| ProductId | ProductName    | ProductBackOrder |
+-----------+----------------+------------------+
| 101       | Second-Product | 2                |
| 103       | Fourth-Product | 4                |
| 104       | Fifth-Product  | 10               |
+-----------+----------------+------------------+

-- Case 2: NULL ও রাখতে (IS NULL)
mysql> SELECT * FROM IsNullDemo WHERE ProductBackOrder IS NULL OR ProductBackOrder <> 2;
+-----------+----------------+------------------+
| ProductId | ProductName    | ProductBackOrder |
+-----------+----------------+------------------+
| 100       | First-Product  | NULL             |
| 102       | Third-Product  | NULL             |
| 103       | Fourth-Product | 4                |
| 104       | Fifth-Product  | 10               |
| 105       | Sixth-Product  | NULL             |
+-----------+----------------+------------------+

মনে রাখবেন: `NULL <> 2` হলো `UNKNOWN`, `TRUE` নয়। তাই WHERE ক্লজে NULL রো গুলো ফিল্টার হয়ে যায়।

  1. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

  2. MySQL-এ NULL মানযুক্ত কলামকে গুন করার সমস্যা সমাধান (COALESCE)

  3. MySQL-এ IF() ফাংশন দিয়ে NOT NULL মান માટે ১ এবং NULL জন্য ০ দেখানো

  4. MySQL-এ কলাম NULL হলে আপডেট করা, অন্যথায় অন্য কলাম আপডেট করা