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

MySQL में एक या दो कॉलम के आधार पर डुप्लिकेट पंक्तियाँ कैसे चुनें?

MySQL में एक या अधिक कॉलम के आधार पर डुप्लिकेट पंक्तियाँ खोजने के लिए सबक्वेरी के साथ HAVING क्लॉज का उपयोग करें।

टेबल निर्माण

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName VARCHAR(20),
    StudentLastName VARCHAR(20)
);

डेटा डालना (John तीन बार आता है)

mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John', 'Smith');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('Carol', 'Taylor');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John', 'Doe');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John', 'Brown');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('David', 'Miller');

सभी रिकॉर्ड देखें

mysql> SELECT * FROM DemoTable;
+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
|         1 | John             | Smith           |
|         2 | Carol            | Taylor          |
|         3 | John             | Doe             |
|         4 | John             | Brown           |
|         5 | David            | Miller          |
+-----------+------------------+-----------------+
5 rows in set (0.00 sec)

डुप्लिकेट FirstName वाली पंक्तियाँ चुनें

mysql> SELECT StudentId FROM DemoTable 
    WHERE StudentFirstName = (
        SELECT StudentFirstName FROM DemoTable 
        HAVING COUNT(StudentFirstName) > 1
    );

परिणाम (John के तीनों रिकॉर्ड)

+-----------+
| StudentId |
+-----------+
|         1 |
|         3 |
|         4 |
+-----------+
3 rows in set (0.03 sec)

बेहतर तरीका (दो कॉलम के लिए):

SELECT * FROM DemoTable 
WHERE (StudentFirstName, StudentLastName) IN (
    SELECT StudentFirstName, StudentLastName 
    FROM DemoTable 
    GROUP BY StudentFirstName, StudentLastName 
    HAVING COUNT(*) > 1
);

यह संयोजन (कॉम्बिनेशन) के आधार पर डुप्लिकेट ढूंढता है।

  1. - MySQL में विशिष्ट इनपुट के आधार पर टेबल कॉलम से कई पंक्तियाँ कैसे प्राप्त करें?

    विशिष्ट कॉलम मान के आधार पर पंक्तियाँ फ़िल्टर करना MySQL में WHERE क्लॉज का उपयोग करके आप किसी विशिष्ट कॉलम मान से मेल खाने वाली सभी पंक्तियाँ प्राप्त कर सकते हैं। यह सबसे बुनियादी और आमतौर पर उपयोग किया जाने वाला ऑपरेशन है। टेबल बनाना ); Query OK, 0 rows affected (0.53 sec) डेटा डालना INSERT IN

  1. - MySQL में कॉलम्स को पंक्तियों में कैसे संयोजित करें (UNION ALL का उपयोग करके)

    MySQL में UNION ALL का उपयोग करके कॉलम्स को पंक्तियों में बदलना जब आपको एक ही टेबल के कई कॉलम्स के मानों को एक ही कॉलम में कई पंक्तियों के रूप में संयोजित करने की आवश्यकता होती है, तो UNION ALL सबसे सरल और कुशल तरीका है। सिंटैक्स SELECT yourColumnName1 FROM yourTableName UNION ALL SELECT yourColumn

  1. - MySQL में MAX() और सबक्वेरी से दो कॉलम के योग का अधिकतम मान वाली पंक्ति चुनें

    दो कॉलम के योग का अधिकतम मान वाली पंक्ति ढूंढने के लिए सबक्वेरी में MAX(कॉलम1 + कॉलम2) का उपयोग करें। सिंटैक्स SELECT * FROM टेबल_नाम WHERE कॉलम1 + कॉलम2 = (SELECT MAX(कॉलम1 + कॉलम2) FROM टेबल_नाम); उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable1587 (Value1 INT, Value2 INT); 2. डेटा डालें INSERT