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

MySQL में NULL और अन्य मानों के आधार पर शर्तों से रिकॉर्ड प्राप्त करें

जटिल NULL-आधारित शर्तों के साथ फ़िल्टरिंग

जब कई कॉलम में NULL मान हों और आपको जटिल शर्तें लागू करनी हों (जैसे: मान NULL हो या किसी मान के बराबर न हो), तो प्रत्येक कॉलम के लिए IS NULL OR != value पैटर्न का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    value1 INT,
    value2 INT,
    value3 INT
);
Query OK, 0 rows affected (0.70 sec)
mysql> INSERT INTO DemoTable VALUES(20,40,NULL);
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable VALUES(40,40,NULL);
Query OK, 1 row affected (0.26 sec)
mysql> INSERT INTO DemoTable VALUES(NULL,NULL,NULL);
Query OK, 1 row affected (0.17 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
| 20     | 40     | NULL   |
| 40     | 40     | NULL   |
| NULL   | NULL   | NULL   |
+--------+--------+--------+
3 rows in set (0.00 sec)

शर्त: कोई भी कॉलम 20 न हो (NULL को 20 न मानें)

mysql> SELECT * FROM DemoTable 
    WHERE (value1 IS NULL OR value1 != 20)
    AND (value2 IS NULL OR value2 != 20)
    AND (value3 IS NULL OR value3 != 20);

परिणाम:

+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
| 40     | 40     | NULL   |
| NULL   | NULL   | NULL   |
+--------+--------+--------+
2 rows in set (0.00 sec)

तर्क: पंक्ति 1: value1=20 → शर्त असफल → बाहर। पंक्ति 2: value1=40 (≠20), value2=40 (≠20), value3=NULL → सभी सत्य → शामिल। पंक्ति 3: सभी NULL → सभी सत्य → शामिल।

पैटर्न: (col IS NULL OR col != val) का अर्थ "col या तो NULL है या val नहीं है"।

  1. - MySQL में NULL या नॉन-NULL मानों वाले टेबल के सभी फील्ड अपडेट करें

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

  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 में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(