AND और OR ऑपरेटर्स को मिलाकर जटिल फ़िल्टरिंग
एकाधिक शर्तों को AND और OR ऑपरेटर्स के साथ जोड़कर जटिल फ़िल्टरिंग करें। कोष्ठक () का उपयोग प्राथमिकता नियंत्रित करने के लिए करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(40),
StudentMathMarks INT,
StudentMySQLMarks INT,
status ENUM('ACTIVE', 'INACTIVE')
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Chris', 45, 67, 'active');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Bob', 89, 78, 'inactive');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('David', 56, 68, 'active');
mysql> INSERT INTO DemoTable (StudentName, StudentMathMarks, StudentMySQLMarks, status) VALUES ('Robert', 68, 75, 'active');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+-------------+------------------+-------------------+----------+ | StudentId | StudentName | StudentMathMarks | StudentMySQLMarks | status | +-----------+-------------+------------------+-------------------+----------+ | 1 | Chris | 45 | 67 | ACTIVE | | 2 | Bob | 89 | 78 | INACTIVE | | 3 | David | 56 | 68 | ACTIVE | | 4 | Robert | 68 | 75 | ACTIVE | +-----------+-------------+------------------+-------------------+----------+
स्टेटस 'active' हो AND (MathMarks=68 OR MySQLMarks=67) वाले रिकॉर्ड्स:
mysql> SELECT * FROM DemoTable
WHERE status = 'active'
AND (StudentMathMarks = 68 OR StudentMySQLMarks = 67);
आउटपुट:
+-----------+-------------+------------------+-------------------+--------+ | StudentId | StudentName | StudentMathMarks | StudentMySQLMarks | status | +-----------+-------------+------------------+-------------------+--------+ | 1 | Chris | 45 | 67 | ACTIVE | | 4 | Robert | 68 | 75 | ACTIVE | +-----------+-------------+------------------+-------------------+--------+
व्याख्या:
- status = 'active': केवल सक्रिय छात्र (Chris, David, Robert)
- StudentMathMarks = 68 OR StudentMySQLMarks = 67: इनमें से कोई भी शर्त पूरी हो
- Chris: MySQLMarks=67 ✓
- David: MathMarks=68 ✓
- Robert: MathMarks=68 ✓
- AND: दोनों मुख्य शर्तें पूरी होनी चाहिए
- परिणाम: Chris और Robert
ऑपरेटर प्राथमिकता: AND का प्रीसिडेंस OR से अधिक होता है।
-- ये समान हैं: WHERE A AND B OR C -- (A AND B) OR C WHERE A AND (B OR C) -- स्पष्ट कोष्ठक के साथ
सर्वोत्तम अभ्यास: भ्रम से बचने के लिए हमेशा कोष्ठक () का उपयोग करें।