MySQL में NULL और खाली मान दोनों को बाहर करना
किसी कॉलम से NULL और खाली स्ट्रिंग दोनों को बाहर करने के लिए IS NOT NULL और <> '' दोनों शर्तों का उपयोग करें।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable635 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(100)
);
Query OK, 0 rows affected (1.24 sec)
mysql> INSERT INTO DemoTable635(EmployeeName) VALUES('John');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable635(EmployeeName) VALUES('Sam');
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO DemoTable635(EmployeeName) VALUES('');
Query OK, 1 row affected (0.38 sec)
mysql> INSERT INTO DemoTable635(EmployeeName) VALUES(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable635(EmployeeName) VALUES('David');
Query OK, 1 row affected (0.22 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable635;
+-----------+--------------+ | EmployeeId | EmployeeName | +-----------+--------------+ | 1 | John | | 2 | Sam | | 3 | | | 4 | NULL | | 5 | David | +-----------+--------------+ 5 rows in set (0.00 sec)
NULL और खाली मान बाहर करने का क्वेरी
mysql> SELECT * FROM DemoTable635 tbl WHERE tbl.EmployeeName IS NOT NULL AND tbl.EmployeeName <> '';
परिणाम
+-----------+--------------+ | EmployeeId | EmployeeName | +-----------+--------------+ | 1 | John | | 2 | Sam | | 5 | David | +-----------+--------------+ 3 rows in set (0.02 sec)
वैकल्पिक सिंटैक्स:
WHERE LENGTH(TRIM(EmployeeName)) > 0— ट्रिम के बाद लंबाई 0 से अधिक हो।WHERE COALESCE(NULLIF(TRIM(EmployeeName), ''), 'x') <> 'x'— अधिक जटिल लेकिन लचीला।
पहली विधि सबसे स्पष्ट और पोर्टेबल है।