MySQL में NULL और खाली स्ट्रिंग मानों को संभालना
MySQL में, NULL (मान की अनुपस्थिति) और खाली स्ट्रिंग '' (शून्य-लंबाई स्ट्रिंग) अलग हैं। NULL मान वाले फ़ील्ड का चयन करने के लिए IS NULL का उपयोग करें, = NULL का नहीं।
उदाहरण: NULL और खाली स्ट्रिंग वाला नाम टेबल
mysql> CREATE TABLE DemoTable1455 (
-> Name VARCHAR(20)
-> );
Query OK, 0 rows affected (0.47 sec)
mysql> INSERT INTO DemoTable1455 VALUES ('John'), (NULL), ('');
Query OK, 3 rows affected (0.22 sec)
mysql> SELECT * FROM DemoTable1455;
+------+
| Name |
+------+
| John |
| NULL |
| |
+------+
3 rows in set (0.00 sec)
NULL और गैर-'John' मानों के लिए क्वेरी
mysql> SELECT * FROM DemoTable1455
-> WHERE Name <> 'John' OR Name IS NULL;
परिणाम
+------+ | Name | +------+ | NULL | | | +------+ 2 rows in set (0.00 sec)
मुख्य अंतर: NULL बनाम खाली स्ट्रिंग
| पहलू | NULL | खाली स्ट्रिंग '' |
|---|---|---|
| अर्थ | मान अज्ञात/अनुपस्थित | मान ज्ञात है लेकिन खाली |
| तुलना | IS NULL / IS NOT NULL | ='' / <>'' |
| लंबाई | NULL | 0 |
| संयोजन | परिणाम NULL | अन्य स्ट्रिंग लौटाता है |
| गणना | COUNT(*) गिनता है, COUNT(col) नहीं गिनता | दोनों गिनते हैं |
सामान्य पैटर्न