टेबल से कुछ मानों को बाहर करने के लिए NOT IN() का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable791 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(100) ); Query OK, 0 rows affected (0.61 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable791(FirstName) values('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable791(FirstName) values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable791(FirstName) values('David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable791(FirstName) values('Mike');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable791(FirstName) values('Bob');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable791(FirstName) values('Carol');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable791(FirstName) values('Adam');
Query OK, 1 row affected (0.09 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable791;
यह निम्नलिखिक आउटपुट देगा:
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | Chris | | 2 | Robert | | 3 | David | | 4 | Mike | | 5 | Bob | | 6 | Carol | | 7 | Adam | +----+-----------+ 7 rows in set (0.00 sec)
MySQL में NOT IN() का उपयोग करके टेबल से कुछ मानों को बाहर करने की क्वेरी
mysql> select * from DemoTable791 where Id NOT IN(4,5,6);
यह निम्नलिखिक आउटपुट देगा:
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | Chris | | 2 | Robert | | 3 | David | | 7 | Adam | +----+-----------+ 4 rows in set (0.00 sec)
व्याख्या
NOT IN(4,5,6)ID 4, 5, 6 (Mike, Bob, Carol) को बाहर करता है- शेष पंक्तियाँ (1, 2, 3, 7) प्रदर्शित होती हैं
NOT INसूची में NULL होने पर अप्रत्याशित परिणाम दे सकता है - सावधान रहें- बड़े डेटासेट के लिए
NOT EXISTSयाLEFT JOIN ... WHERE IS NULLअधिक कुशल हो सकता है
स्ट्रिंग मानों के साथ उदाहरण
SELECT * FROM DemoTable791 WHERE FirstName NOT IN ('Mike', 'Bob', 'Carol');