NULL जांच और असमानता तुलना का संयोजन
जब एक कॉलम में NULL मान हों और आपको वे पंक्तियां चाहिए जहां कॉलम NULL हो या किसी विशिष्ट मान के बराबर न हो, तो IS NULL OR column != value का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
Score INT
);
Query OK, 0 rows affected (1.10 sec)
mysql> INSERT INTO DemoTable(Name,Score) VALUES('John',45);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(Name,Score) VALUES('Chris',NULL);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(Name,Score) VALUES('David',NULL);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable(Name,Score) VALUES('Bob',1);
Query OK, 1 row affected (0.11 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+----+-------+-------+ | Id | Name | Score | +----+-------+-------+ | 1 | John | 45 | | 2 | Chris | NULL | | 3 | David | NULL | | 4 | Bob | 1 | +----+-------+-------+ 4 rows in set (0.00 sec)
Score NULL हो या 1 न हो ऐसी पंक्तियां
mysql> SELECT * FROM DemoTable WHERE Score IS NULL OR Score != 1;
परिणाम:
+----+-------+-------+ | Id | Name | Score | +----+-------+-------+ | 1 | John | 45 | | 2 | Chris | NULL | | 3 | David | NULL | +----+-------+-------+ 3 rows in set (0.00 sec)
महत्वपूर्ण: Score != 1 अकेले NULL पंक्तियों को नहीं लौटाता क्योंकि NULL के साथ कोई भी तुलना UNKNOWN होती है। इसलिए IS NULL को OR से जोड़ना आवश्यक है।