Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में खाली और NULL मानों को कैसे छोड़ें/स्किप करें?

IS NOT NULL और <> '' का संयोजन

किसी कॉलम से NULL और खाली स्ट्रिंग दोनों को बाहर करने के लिए दो शर्तों का उपयोग करें।

सिंटैक्स

SELECT * FROM yourTableName 
WHERE yourColumnName IS NOT NULL 
AND yourColumnName <> '';

उदाहरण

1. टेबल बनाना

mysql> CREATE TABLE DemoTable (Id INT, FirstName VARCHAR(20));
Query OK, 0 rows affected (0.66 sec)

2. डेटा डालना (विभिन्न प्रकार के खाली मान)

mysql> INSERT INTO DemoTable VALUES(100, 'Larry');
mysql> INSERT INTO DemoTable VALUES(101, '');        -- खाली स्ट्रिंग
mysql> INSERT INTO DemoTable VALUES(102, 'Chris');
mysql> INSERT INTO DemoTable VALUES(103, NULL);       -- NULL
mysql> INSERT INTO DemoTable VALUES(104, ' ');        -- स्पेस
mysql> INSERT INTO DemoTable VALUES(105, 'Robert');
mysql> INSERT INTO DemoTable VALUES(106, NULL);       -- NULL

3. सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 101  |           |
| 102  | Chris     |
| 103  | NULL      |
| 104  |           |
| 105  | Robert    |
| 106  | NULL      |
+------+-----------+
7 rows in set (0.00 sec)

4. NULL और खाली स्ट्रिंग दोनों को छोड़ना

mysql> SELECT * FROM DemoTable 
    WHERE FirstName IS NOT NULL AND FirstName <> '';
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Larry     |
| 102  | Chris     |
| 105  | Robert    |
+------+-----------+
3 rows in set (0.03 sec)

नोट: स्पेस (' ') शामिल नहीं

उपरोक्त क्वेरी स्पेस वाले मान (Id=104) को नहीं हटाती क्योंकि स्पेस खाली स्ट्रिंग नहीं है।

स्पेस भी हटाने के लिए TRIM() उपयोग करें

SELECT * FROM DemoTable 
WHERE FirstName IS NOT NULL 
AND TRIM(FirstName) <> '';

COALESCE का उपयोग (छोटा सिंटैक्स)

SELECT * FROM DemoTable 
WHERE COALESCE(TRIM(FirstName), '') <> '';

NULLIF का उपयोग

SELECT * FROM DemoTable 
WHERE NULLIF(TRIM(FirstName), '') IS NOT NULL;

सारांश तालिका

शर्त NULL हटाता है '' हटाता है ' ' हटाता है
IS NOT NULL ✅ ❌ ❌
<> '' ❌ ✅ ❌
IS NOT NULL AND <> '' ✅ ✅ ❌
TRIM() <> '' ❌ (एरर) ✅ ✅
IS NOT NULL AND TRIM() <> '' ✅ ✅ ✅
COALESCE(TRIM(), '') <> '' ✅ ✅ ✅

सर्वोत्तम अभ्यास

  • डेटा डालते समय ही वैलिडेशन करें
  • कॉलम पर NOT NULL कंस्ट्रेंट लगाएं यदि संभव हो
  • TRIM() के साथ इंडेक्स उपयोग नहीं हो पाता (फंक्शनल इंडेक्स MySQL 8.0+ में)
  1. - MySQL में खाली मानों को NULL में कैसे अपडेट करें?

    MySQL में खाली स्ट्रिंग () को NULL में बदलने के लिए IF() फ़ंक्शन के साथ UPDATE स्टेटमेंट का उपयोग करें। यह डेटा सफाई और मानकीकरण के लिए उपयोगी है। सिंटैक्स UPDATE table_name SET column_name = IF(column_name = , NULL, column_name); उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTabl

  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा

  1. - MySQL में टेबल जोड़कर (JOIN) मान कैसे प्राप्त करें?

    JOIN का उपयोग दो टेबल को सामान्य कॉलम (PK-FK) पर जोड़ें। टेबल 1: demo52 insert into demo52 values(1,John), (2,David), (3,Mike); टेबल 2: demo53 (FK से demo52) insert into demo53 values(1,23), (2,22), (3,26); JOIN क्वेरी SELECT name FROM demo52 t1 JOIN demo53 t2 ON t1.id=t2.id WHERE t1.id=1; +-