কন্ডিশনাল NOT NULL কেসের জন্য <> এবং = অপারেটর ব্যবহার করার প্রয়োজন নেই। MySQL-এ NULL একটি স্পেশাল কেস, তাই IS NULL এবং IS NOT NULL প্রপার্টি ব্যবহার করতে হয়।
এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table ConditionalNotNullDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> SendMessage longtext, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.62 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:
mysql> insert into ConditionalNotNullDemo(SendMessage) values(NULL); Query OK, 1 row affected (0.16 sec) mysql> insert into ConditionalNotNullDemo(SendMessage) values('Hi'); Query OK, 1 row affected (0.15 sec) mysql> insert into ConditionalNotNullDemo(SendMessage) values('Hello'); Query OK, 1 row affected (0.20 sec) mysql> insert into ConditionalNotNullDemo(SendMessage) values(NULL); Query OK, 1 row affected (0.18 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from ConditionalNotNullDemo;
আউটপুট নিচে দেওয়া হলো:
+----+-------------+ | Id | SendMessage | +----+-------------+ | 1 | NULL | | 2 | Hi | | 3 | Hello | | 4 | NULL | +----+-------------+ 4 rows in set (0.00 sec)
IS NULL এবং IS NOT NULL প্রপার্টির ডেমো নিচে দেওয়া হলো।
কেস ১: সব NULL মেসেজ ফিল্টার করতে IS NULL প্রপার্টি ব্যবহার করা হয়। কোয়েরিটি হলো:
mysql> select *from ConditionalNotNullDemo where SendMessage IS NULL;
আউটপুট:
+----+-------------+ | Id | SendMessage | +----+-------------+ | 1 | NULL | | 4 | NULL | +----+-------------+ 2 rows in set (0.00 sec)
কেস ২: IS NOT NULL প্রপার্টির ব্যবহার। NULL মেসেজ বাদে সব বৈধ মেসেজ দেখাতে IS NOT NULL ব্যবহার করা হয়। কোয়েরিটি হলো:
mysql> select *from ConditionalNotNullDemo where SendMessage IS NOT NULL;
আউটপুট:
+----+-------------+ | Id | SendMessage | +----+-------------+ | 2 | Hi | | 3 | Hello | +----+-------------+ 2 rows in set (0.03 sec)
সারসংক্ষেপে, MySQL-এ NULL মান চেক করার জন্য সবসময় IS NULL বা IS NOT NULL ব্যবহার করতে হয়, সাধারণ তুলনা অপারেটর (=, <>) দিয়ে NULL চেক করা যায় না।