डुप्लिकेट मानों वाली टेबल से सटीक पंक्ति मिलान
जब किसी टेबल में डुप्लिकेट कॉलम मान होते हैं (जैसे एक ही नाम के कई कर्मचारी), तो आप WHERE क्लॉज में एकाधिक शर्तों को जोड़कर विशिष्ट पंक्तियों को लक्षित कर सकते हैं।
उदाहरण: विशिष्ट कर्मचारी रिकॉर्ड ढूंढना
पहले डुप्लिकेट नामों वाली एक कर्मचारी टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1431 (
-> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20),
-> EmployeeCountryName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable1431 (EmployeeName, EmployeeCountryName) VALUES
-> ('Adam Smith', 'AUS'), ('Chris Brown', 'US'),
-> ('John Doe', 'UK'), ('Chris Brown', 'AUS');
Query OK, 4 rows affected (0.13 sec)
mysql> SELECT * FROM DemoTable1431;
+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeCountryName |
+------------+--------------+---------------------+
| 1 | Adam Smith | AUS |
| 2 | Chris Brown | US |
| 3 | John Doe | UK |
| 4 | Chris Brown | AUS |
+------------+------------+---------------------+
4 rows in set (0.00 sec)
संयुक्त शर्तों के साथ सटीक मिलान
"Chris Brown" नाम के और "AUS" देश के कर्मचारी को ढूंढें:
mysql> SELECT * FROM DemoTable1431
-> WHERE EmployeeName = 'Chris Brown'
-> AND EmployeeCountryName = 'AUS';
परिणाम
+------------+--------------+---------------------+ | EmployeeId | EmployeeName | EmployeeCountryName | +------------+--------------+---------------------+ | 4 | Chris Brown | AUS | +------------+--------------+---------------------+ 1 row in set (0.00 sec)
मुख्य तकनीकें
- AND ऑपरेटर: सभी शर्तें सत्य होनी चाहिए
- प्राथमिक कुंजी: अद्वितीय ID के साथ सीधे पहुंच के लिए उपयोग करें
- संयुक्त इंडेक्स: अक्सर एक साथ क्वेरी किए जाने वाले कॉलम पर (EmployeeName, EmployeeCountryName) बनाएं
- LIMIT 1: यदि केवल एक मिलान अपेक्षित है तो प्रदर्शन के लिए जोड़ें
वैकल्पिक दृष्टिकोण
-- ROW कंस्ट्रक्टर का उपयोग (MySQL 8.0+)
SELECT * FROM DemoTable1431
WHERE (EmployeeName, EmployeeCountryName) = ('Chris Brown', 'AUS');