MySQL में सबक्वेरी और NOT IN के साथ विशिष्ट मान को बाहर करके अद्वितीय ID खोजना
सबक्वेरी के साथ NOT IN का उपयोग करके उन ID को खोजा जा सकता है जिनमें कोई विशिष्ट मान (जैसे 'Chris') नहीं है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
Id INT,
FirstName VARCHAR(100)
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable VALUES(100, 'Chris'); mysql> INSERT INTO DemoTable VALUES(100, 'Robert'); mysql> INSERT INTO DemoTable VALUES(100, 'Mike'); mysql> INSERT INTO DemoTable VALUES(100, 'Sam'); mysql> INSERT INTO DemoTable VALUES(101, 'David'); mysql> INSERT INTO DemoTable VALUES(101, 'Robert'); mysql> INSERT INTO DemoTable VALUES(210, 'Chris'); mysql> INSERT INTO DemoTable VALUES(210, 'Bob'); mysql> INSERT INTO DemoTable VALUES(210, 'Sam');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | Chris | | 100 | Robert | | 100 | Mike | | 100 | Sam | | 101 | David | | 101 | Robert | | 210 | Chris | | 210 | Bob | | 210 | Sam | +------+-----------+
'Chris' नहीं रखने वाले विशिष्ट ID खोजने के लिए क्वेरी
mysql> SELECT DISTINCT Id FROM DemoTable WHERE Id NOT IN (SELECT Id FROM DemoTable WHERE FirstName = 'Chris');
आउटपुट:
+------+ | Id | +------+ | 101 | +------+
व्याख्या
- सबक्वेरी:
SELECT Id FROM DemoTable WHERE FirstName = 'Chris'→ 100, 210 लौटाता है - मुख्य क्वेरी: उन ID को बाहर करता है जिनमें 'Chris' है
DISTINCT- डुप्लिकेट ID हटाता है- परिणाम: केवल 101 (जिसमें Chris नहीं है)
NOT IN के साथ NULL चेतावनी
यदि सबक्वेरी NULL लौटाती है, तो NOT IN कोई पंक्ति नहीं लौटाता। सुरक्षित विकल्प: