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

MySQL में NOT IN() फ़ंक्शन का उपयोग करके सरणी में नहीं मौजूद रिकॉर्ड्स ढूंढना

MySQL में किसी मानों के सेट (सरणी) में नहीं मौजूद रिकॉर्ड्स प्राप्त करने के लिए NOT IN() ऑपरेटर का उपयोग किया जाता है। यह बहिष्करण फ़िल्टरिंग के लिए बहुत उपयोगी है।

सिंटैक्स

SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, ...);

व्यावहारिक उदाहरण

1. टेबल बनाएं और डेटा डालें

mysql> CREATE TABLE DemoTable718 (
    Id INT,
    FirstName VARCHAR(100),
    Age INT
);
Query OK, 0 rows affected (0.59 sec)

mysql> INSERT INTO DemoTable718 VALUES 
(101, 'Chris', 26),
(102, 'Robert', 24),
(103, 'David', 27),
(104, 'Mike', 28),
(105, 'Sam', 23);
Query OK, 5 rows affected (0.15 sec)

2. सभी रिकॉर्ड्स देखें

mysql> SELECT * FROM DemoTable718;
+------+-----------+------+
| Id   | FirstName | Age  |
+------+-----------+------+
| 101  | Chris     | 26   |
| 102  | Robert    | 24   |
| 103  | David     | 27   |
| 104  | Mike      | 28   |
| 105  | Sam       | 23   |
+------+-----------+------+
5 rows in set (0.00 sec)

3. विशिष्ट IDs को छोड़कर रिकॉर्ड्स प्राप्त करें

mysql> SELECT * FROM DemoTable718 WHERE Id NOT IN ('101', '103', '104');
+------+-----------+------+
| Id   | FirstName | Age  |
+------+-----------+------+
| 102  | Robert    | 24   |
| 105  | Sam       | 23   |
+------+-----------+------+
2 rows in set (0.00 sec)

महत्वपूर्ण विचार

NULL मानों के साथ सावधानी

-- यदि सूची में NULL है, तो NOT IN अप्रत्याशित परिणाम दे सकता है
SELECT * FROM table WHERE col NOT IN (1, 2, NULL);  -- कोई पंक्ति नहीं लौटाएगा!

-- समाधान: NOT EXISTS उपयोग करें या NULL को बाहर करें
SELECT * FROM table WHERE col NOT IN (1, 2) AND col IS NOT NULL;

सबक्वेरी के साथ उपयोग

SELECT * FROM orders 
WHERE customer_id NOT IN (SELECT customer_id FROM vip_customers);

NOT IN vs NOT EXISTS

NOT INNOT EXISTS
मानों की सूची के साथ सरलसबक्वेरी के साथ बेहतर प्रदर्शन
NULL मानों के साथ समस्याNULL सुरक्षित
छोटी सूचियों के लिए ठीकबड़े डेटासेट के लिए अनुशंसित

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

  • छोटी, स्थिर सूचियों के लिए NOT IN उपयोग करें
  • सबक्वेरी या बड़ी सूचियों के लिए NOT EXISTS प्राथमिकता दें
  • हमेशा NULL संभावना पर विचार करें
  1. - MySQL में दूसरे स्थान पर स्पेस वाले रिकॉर्ड कैसे खोजें?

    SUBSTR() से दूसरे कैरेक्टर पर स्पेस चेक करें किसी स्ट्रिंग कॉलम में दूसरे स्थान (पोजीशन 2) पर स्पेस वाले रिकॉर्ड खोजने के लिए SUBSTR(column, 2, 1) = का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable1365 (Value VARCHAR(20)); INSERT INTO DemoTable1365 VALUES (9756757474), (3 45322333), (897464636

  1. - MySQL में GREATEST() से किसी भी कॉलम में NULL वाली पंक्तियाँ खोजें

    GREATEST() फ़ंक्शन अपने तर्कों में से सबसे बड़ा मान लौटाता है। यदि कोई भी तर्क NULL है, तो परिणाम NULL होता है। इस गुण का उपयोग करके किसी भी कॉलम में NULL वाली पंक्तियाँ खोज सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1862 ( Value1 INT, Value2 INT, Value3 INT, Value4 INT ); डेटा डालें

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into