MySQL-এ TINYINT কলাম (সাধারণত বুলিয়ান হিসেবে ব্যবহৃত: 0, 1, NULL) থেকে ১ ছাড়া সব রেকর্ড (অর্থাৎ ০ এবং NULL) ফিল্টার করতে <> 1 OR IS NULL শর্ত ব্যবহার করা হয়।
উদাহরণ
১. টেবিল তৈরি করুন (isMarried TINYINT)
mysql> CREATE TABLE DemoTable (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20),
-> isMarried TINYINT
-> );
২. ডেটা ইনসার্ট করুন (NULL, 1, 0 মিশ্রিত)
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Chris', NULL);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('David', 1);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Mike', 0);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Sam', NULL);
mysql> INSERT INTO DemoTable(EmployeeName, isMarried) VALUES('Bob', 0);
৩. সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
আউটপুট:
+------------+--------------+-----------+
| EmployeeId | EmployeeName | isMarried |
+------------+--------------+-----------+
| 1 | Chris | NULL |
| 2 | David | 1 |
| 3 | Mike | 0 |
| 4 | Sam | NULL |
| 5 | Bob | 0 |
+------------+--------------+-----------+
৪. isMarried <> 1 বা IS NULL রেকর্ড ফিল্টার করুন
mysql> SELECT * FROM DemoTable WHERE isMarried <> 1 OR isMarried IS NULL;
৫. ফলাফল
+------------+--------------+-----------+
| EmployeeId | EmployeeName | isMarried |
+------------+--------------+-----------+
| 1 | Chris | NULL |
| 3 | Mike | 0 |
| 4 | Sam | NULL |
| 5 | Bob | 0 |
+------------+--------------+-----------+
ব্যাখ্যা: David (isMarried=1) বাদ পড়েছে। বাকি NULL এবং 0 ভ্যালু वाले রেকর্ডগুলো ফিল্টার হয়েছে।
সরল বিকল্প: WHERE isMarried != 1 OR isMarried IS NULL বা WHERE NOT (isMarried = 1) (NULL সেফলি এক্সক্লুড করে না, তাই OR IS NULL দরকার)।
সেরা অনুশীলন: বুলিয়ান কলামে NOT NULL DEFAULT 0 দিয়ে NULL এড়িয়ান।