विशिष्ट कॉलम मान के आधार पर पंक्तियाँ फ़िल्टर करना
MySQL में WHERE क्लॉज का उपयोग करके आप किसी विशिष्ट कॉलम मान से मेल खाने वाली सभी पंक्तियाँ प्राप्त कर सकते हैं। यह सबसे बुनियादी और आमतौर पर उपयोग किया जाने वाला ऑपरेशन है।
टेबल बनाना
mysql> CREATE TABLE DemoTable1528 (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20),
-> StudentSubject VARCHAR(20)
-> );
Query OK, 0 rows affected (0.53 sec)
डेटा डालना
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Chris','MongoDB');
Query OK, 1 row affected (0.38 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Bob','MySQL');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('David','Java');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Carol','C');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Sam','Java');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Mike','Java');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1528(StudentName,StudentSubject) VALUES ('Adam','MySQL');
Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable1528;
+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
| 1 | Chris | MongoDB |
| 2 | Bob | MySQL |
| 3 | David | Java |
| 4 | Carol | C |
| 5 | Sam | Java |
| 6 | Mike | Java |
| 7 | Adam | MySQL |
+-----------+-------------+----------------+
7 rows in set (0.00 sec)
विशिष्ट विषय के लिए पंक्तियाँ प्राप्त करना (Java)
mysql> SELECT StudentId, StudentName, StudentSubject
-> FROM DemoTable1528
-> WHERE StudentSubject = 'Java';
परिणाम
+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
| 3 | David | Java |
| 5 | Sam | Java |
| 6 | Mike | Java |
+-----------+-------------+----------------+
3 rows in set (0.00 sec)
महत्वपूर्ण बिंदु
- WHERE क्लॉज फ़िल्टरिंग की शर्त निर्दिष्ट करता है
- स्ट्रिंग मान सिंगल कोट्स में होने चाहिए:
'Java' - कॉलम नाम बैकटिक्स में हो सकते हैं:
\`StudentSubject\` - केस संवेदनशीलता कॉलेशन पर निर्भर करती है (डिफ़ॉल्ट केस-असंवेदनशील)
उन्नत फ़िल्टरिंग विकल्प
एकाधिक मानों के लिए (IN ऑपरेटर)
SELECT * FROM DemoTable1528
WHERE StudentSubject IN ('Java', 'MySQL');
पैटर्न मिलान के लिए (LIKE ऑपरेटर)
SELECT * FROM DemoTable1528
WHERE StudentSubject LIKE 'J%'; -- J से शुरू होने वाले विषय
केस-संवेदनशील तुलना
SELECT * FROM DemoTable1528
WHERE StudentSubject = BINARY 'java'; -- केवल लोअरकेस 'java' से मेल खाएगा
प्रदर्शन युक्ति
अक्सर फ़िल्टर किए जाने वाले कॉलम्स पर इंडेक्स बनाएं:
CREATE INDEX idx_subject ON DemoTable1528(StudentSubject);
यह बड़े टेबल्स पर WHERE क्लॉज क्वेरीज़ को काफी तेज़ कर देगा।