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

MySQL में तुलना करके केवल NULL मान वाली पंक्तियां दिखाएं

IFNULL() के साथ NULL मान वाली पंक्तियों को फ़िल्टर करना

दो कॉलम की तुलना में, जब एक कॉलम NULL हो तो उसे 0 मानकर तुलना करने के लिए IFNULL() का उपयोग करें, जिससे NULL वाली पंक्तियां परिणाम में आ सकें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    Value1 INT,
    Value2 INT
);
Query OK, 0 rows affected (0.75 sec)
mysql> INSERT INTO DemoTable VALUES(10,NULL);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES(20,40);
Query OK, 1 row affected (0.27 sec)
mysql> INSERT INTO DemoTable VALUES(3,NULL);
Query OK, 1 row affected (0.20 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | NULL   |
| 20     | 40     |
| 3      | NULL   |
+--------+--------+
3 rows in set (0.00 sec)

Value1 > Value2 (NULL को 0 मानकर) वाली पंक्तियां

mysql> SELECT * FROM DemoTable WHERE Value1 > IFNULL(Value2, 0);

परिणाम:

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | NULL   |
| 3      | NULL   |
+--------+--------+
2 rows in set (0.00 sec)

तर्क: पंक्ति 1: Value2 NULL → IFNULL 0 → 10 > 0 सत्य। पंक्ति 2: 20 > 40 असत्य। पंक्ति 3: Value2 NULL → 0 → 3 > 0 सत्य।

सीधा तरीका: केवल NULL वाली पंक्तियों के लिए WHERE Value2 IS NULL अधिक स्पष्ट और कुशल है। उपरोक्त तरीका तुलना संदर्भ में उपयोगी है।

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r

  1. - MySQL में IN क्लॉज और ORDER BY FIELD से निर्दिष्ट क्रम में पंक्तियां चुनें

    IN() और FIELD() से कस्टम क्रम में परिणाम प्राप्त करें IN() क्लॉज से विशिष्ट मान चुनें और FIELD() फ़ंक्शन से कस्टम क्रम में सॉर्ट करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1986 ( Number int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1986 values(50); .