IN() ऑपरेटर से विशिष्ट रिकॉर्ड छोड़ें
किसी विशेष ID को छोड़कर सभी रिकॉर्ड प्राप्त करने के लिए IN() ऑपरेटर का उपयोग करके वांछित IDs सूचीबद्ध करें, या NOT IN() / != का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (Id INT, FirstName VARCHAR(20));
mysql> INSERT INTO DemoTable VALUES(100, 'Larry'), (10, 'Chris'), (110, 'Robert'), (90, 'David');
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+------+-----------+
| Id | FirstName |
+------+-----------+
| 100 | Larry |
| 10 | Chris |
| 110 | Robert |
| 90 | David |
+------+-----------+
विधि 1: IN() के साथ वांछित IDs सूचीबद्ध करना
mysql> SELECT * FROM DemoTable WHERE Id IN(110, 90, 100);
+------+-----------+
| Id | FirstName |
+------+-----------+
| 100 | Larry |
| 110 | Robert |
| 90 | David |
+------+-----------+
विधि 2: NOT IN() से बाहर करना (अधिक व्यावहारिक)
mysql> SELECT * FROM DemoTable WHERE Id NOT IN(10);
+------+-----------+
| Id | FirstName |
+------+-----------+
| 100 | Larry |
| 110 | Robert |
| 90 | David |
+------+-----------+
विधि 3: != ऑपरेटर (एकल मान के लिए)
mysql> SELECT * FROM DemoTable WHERE Id != 10;
-- या
mysql> SELECT * FROM DemoTable WHERE Id <> 10;
तुलना
| विधि | उपयोग मामला | प्रदर्शन |
|---|---|---|
NOT IN | कुछ मान बाहर करना | अच्छा |
!= / <> | एकल मान बाहर करना | सर्वोत्तम |
IN (वांछित सूची) | कुछ मान चुनना | अच्छा |
NULL मानों के साथ सावधानी
NOT IN सूची में NULL होने पर अप्रत्याशित परिणाम दे सकता है। ऐसे मामलों में NOT EXISTS या LEFT JOIN ... IS NULL का उपयोग करें।