Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में डुप्लिकेट कॉलम मानों वाली टेबल से विशिष्ट पंक्तियाँ कैसे प्राप्त करें?

डुप्लिकेट मानों वाली टेबल से सटीक पंक्ति मिलान

जब किसी टेबल में डुप्लिकेट कॉलम मान होते हैं (जैसे एक ही नाम के कई कर्मचारी), तो आप 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');
  1. - MySQL में DISTINCT से डुप्लिकेट पंक्तियों में से एक पंक्ति दिखाएं

    DISTINCT कीवर्ड से अद्वितीय पंक्तियां प्राप्त करें पूरी पंक्ति के डुप्लिकेट को हटाकर केवल अद्वितीय पंक्तियां प्राप्त करने के लिए SELECT DISTINCT * का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1998 ( Name varchar(20) ); Query OK, 0 rows affected (0.61 sec) mysql> insert

  1. - MySQL में स्ट्रिंग कॉलम (स्ट्रिंग, संख्या, विशेष वर्ण) से विशिष्ट रिकॉर्ड प्राप्त करें

    CAST और SUBSTRING से संख्यात्मक भाग अनुसार क्रमबद्ध करें John_12, Chris_101 जैसे स्ट्रिंग कॉलम से संख्यात्मक भाग निकालकर क्रमबद्ध करें और विशिष्ट रिकॉर्ड प्राप्त करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20

  1. - MySQL में डुप्लिकेट आईडी के लिए फ्लोटिंग कॉलम का न्यूनतम मान प्राप्त करें

    GROUP BY और MIN() से डुप्लिकेट आईडी समूह की न्यूनतम कीमत पाएं डुप्लिकेट आईडी वाले समूहों में फ्लोटिंग-पॉइंट कॉलम का न्यूनतम मान प्राप्त करने के लिए MIN() के साथ GROUP BY का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2005 ( Id int, Price float ); Query OK, 0 rows affected (