MySQL WHERE क्लॉज में एकाधिक शर्तें: AND ऑपरेटर का उपयोग
एक ही क्वेरी में कई शर्तों को जोड़ने के लिए AND ऑपरेटर का उपयोग करें। सभी शर्तें पूरी होने पर ही पंक्ति चुनी जाती है।
उदाहरण: StudentId=4, Name='Carol', Age=21
टेबल बनाएं:
CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(50),
StudentAge INT
);
INSERT INTO DemoTable (StudentName, StudentAge) VALUES
('Chris', 21), ('David', 23), ('Bob', 22), ('Carol', 21);
डेटा:
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Chris | 21 | | 2 | David | 23 | | 3 | Bob | 22 | | 4 | Carol | 21 | +-----------+-------------+------------+
तीन शर्तों के साथ क्वेरी
SELECT * FROM DemoTable WHERE StudentId = 4 AND StudentName = 'Carol' AND StudentAge = 21;
परिणाम:
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 4 | Carol | 21 | +-----------+-------------+------------+
महत्वपूर्ण बिंदु
AND— सभी शर्तें सत्य होनी चाहिएOR— कम से कम एक शर्त सत्य होनी चाहिए- ब्रैकेट
()का उपयोग करके प्राथमिकता नियंत्रित करें:WHERE (A AND B) OR C - स्ट्रिंग मान सिंगल कोट्स में:
'Carol' - संख्या बिना कोट्स:
4,21
इंडेक्स विचार
यदि (StudentId, StudentName, StudentAge) पर कंपोजिट इंडेक्स है, तो यह क्वेरी बहुत तेज होगी।
CREATE INDEX idx_student_lookup ON DemoTable(StudentId, StudentName, StudentAge);
सर्वोत्तम अभ्यास
- सबसे चयनात्मक (सबसे कम पंक्तियां लौटाने वाली) शर्त पहले लिखें
- स्ट्रिंग तुलना में केस सेंसिटिविटी का ध्यान रखें (डिफॉल्ट केस-इनसेंसिटिव)
- तैयार स्टेटमेंट (Prepared Statements) का उपयोग करें SQL इंजेक्शन से बचने के लिए