कई OR शर्तों के बजाय MySQL में IN() ऑपरेटर का उपयोग अधिक पठनीय, संक्षिप्त और अक्सर तेज़ होता है।
तुलना
❌ कम कुशल: कई OR
SELECT * FROM DemoTable WHERE Id = 2 OR Id = 3 OR Id = 5;
✅ बेहतर: IN() ऑपरेटर
SELECT * FROM DemoTable WHERE Id IN (2, 3, 5);
उदाहरण
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName VARCHAR(20)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Adam');
mysql> INSERT INTO DemoTable(FirstName) VALUES('David');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Bob');
3. IN() क्वेरी
mysql> SELECT * FROM DemoTable WHERE Id IN (2, 3, 5);
4. परिणाम
+----+-----------+ | Id | FirstName | +----+-----------+ | 2 | Adam | | 3 | David | | 5 | Bob | +----+-----------+
IN() के लाभ
- पठनीयता: साफ़ और संक्षिप्त सिंटैक्स
- रखरखाव: मान जोड़ना/हटाना आसान
- प्रदर्शन: ऑप्टिमाइज़र बेहतर योजना बना सकता है
- सबक्वेरी समर्थन:
IN (SELECT ...)उपयोग कर सकते हैं
NOT IN
विपरीत के लिए NOT IN() का उपयोग करें:
SELECT * FROM DemoTable WHERE Id NOT IN (2, 3, 5);
सावधानी
IN() में NULL मान होने पर अप्रत्याशित परिणाम दे सकता है। ऐसे मामलों में EXISTS या स्पष्ट NULL जांच बेहतर है।