NULL रिकॉर्ड जांचने के लिए IS NULL का उपयोग करें। हालांकि, किसी रिकॉर्ड को बाहर करने के लिए NOT IN क्लॉज का उपयोग करें। दोनों को एक ही क्वेरी में उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable793 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100) ); Query OK, 0 rows affected (0.81 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable793(StudentName) values('Adam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable793(StudentName) values('Bob');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable793(StudentName) values(null);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable793(StudentName) values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable793(StudentName) values('Robert');
Query OK, 1 row affected (1.03 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable793;
यह निम्नलिखिक आउटपुट देगा:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Adam | | 2 | Bob | | 3 | NULL | | 4 | Chris | | 5 | Robert | +-----------+-------------+ 5 rows in set (0.00 sec)
एक रिकॉर्ड को बाहर करें और NULL मान प्रदर्शित करने की क्वेरी
mysql> select * from DemoTable793 where StudentName NOT IN('Chris') OR StudentName IS NULL;
यह निम्नलिखिक आउटपुट देगा:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Adam | | 2 | Bob | | 3 | NULL | | 5 | Robert | +-----------+-------------+ 4 rows in set (0.00 sec)
व्याख्या
StudentName NOT IN('Chris')- 'Chris' को छोड़कर सभी पंक्तियाँOR StudentName IS NULL- या NULL मान वाली पंक्तियाँ- परिणाम: Adam, Bob, NULL (पंक्ति 3), Robert शामिल हैं; Chris बाहर है
- महत्वपूर्ण:
NOT INके साथ NULL मान अप्रत्याशित व्यवहार कर सकते हैं यदि सूची में NULL हो
बेहतर विकल्प
SELECT * FROM DemoTable793 WHERE StudentName <> 'Chris' OR StudentName IS NULL;
या
SELECT * FROM DemoTable793 WHERE NOT (StudentName = 'Chris') OR StudentName IS NULL;