MySQL में IS NOT NULL के साथ गैर-NULL मान फ़िल्टर करना
क्वेरी परिणामों से NULL मानों को बाहर करने के लिए, IS NOT NULL ऑपरेटर का उपयोग करें। यह != NULL या <> NULL से अलग है, जो हमेशा UNKNOWN (गलत) लौटाते हैं।
उदाहरण: वैध स्कोर वाले छात्र ढूंढना
mysql> CREATE TABLE DemoTable1458 (
-> StudentName VARCHAR(20),
-> StudentScore INT
-> );
Query OK, 0 rows affected (0.52 sec)
mysql> INSERT INTO DemoTable1458 VALUES
-> ('Chris Brown', 56), ('David Miller', NULL),
-> ('John Doe', 78), ('Adam Smith', NULL);
Query OK, 4 rows affected (0.14 sec)
mysql> SELECT * FROM DemoTable1458;
+--------------+--------------+
| StudentName | StudentScore |
+--------------+--------------+
| Chris Brown | 56 |
| David Miller | NULL |
| John Doe | 78 |
| Adam Smith | NULL |
+--------------+--------------+
4 rows in set (0.00 sec)
IS NOT NULL क्वेरी
mysql> SELECT StudentName, StudentScore
-> FROM DemoTable1458
-> WHERE StudentScore IS NOT NULL;
परिणाम
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | Chris Brown | 56 | | John Doe | 78 | +-------------+--------------+ 2 rows in set (0.00 sec)
NULL तुलना नियम
| अभिव्यक्ति | परिणाम | कारण |
|---|---|---|
NULL = NULL | UNKNOWN (गलत) | NULL किसी भी चीज़ के बराबर नहीं, स्वयं के भी नहीं |
NULL <> NULL | UNKNOWN | समान |
NULL IS NULL | TRUE | सही NULL जांच |
NULL IS NOT NULL | FALSE | सही गैर-NULL जांच |
5 = NULL | UNKNOWN | किसी भी मान के साथ तुलना UNKNOWN |
सामान्य पैटर्न
-- गैर-NULL और गैर-खाली WHERE column IS NOT NULL AND column <> ''; -- COALESCE के साथ डिफ़ॉल्ट SELECT COALESCE(column, 'N/A') FROM table; -- NULL को अंत में क्रमबद्ध करें ORDER BY (column IS NULL), column;
एग्रीगेशन प्रभाव
COUNT(column)- NULL को नहीं गिनताCOUNT(*)- सभी पंक्तियाँ गिनता है (NULL सहित)SUM/AVG/MIN/MAX- NULL मानों को अनदेखा करता है