Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में डुप्लिकेट पंक्तियां हटाएं (प्राथमिक कुंजी को अनदेखा करता है)

प्राथमिक कुंजी या विशिष्ट पहचानकर्ता कॉलम को अनदेखा करते हुए निम्न उदाहरण MySQL में डुप्लिकेट पंक्तियों को हटा देता है।

उदाहरण डुप्लिकेट पंक्तियों को हटा देता है लेकिन एक रखता है। तो दो समान पंक्तियों के मामले में, यह उनमें से एक को हटा देता है और दूसरे को रखता है।

नमूना डेटा

मान लीजिए हमारे पास निम्न डेटा वाली एक तालिका है:

SELECT * FROM Dogs;

परिणाम:

+---------+-------------+------------+
| DogId   | FirstName   | LastName   |
|---------+-------------+------------|
| 1       | Bark        | Smith      |
| 2       | Bark        | Smith      |
| 3       | Woof        | Jones      |
| 4       | Ruff        | Robinson   |
| 5       | Wag         | Johnson    |
| 6       | Wag         | Johnson    |
| 7       | Wag         | Johnson    |
+---------+-------------+------------+

हम देख सकते हैं कि पहली दो पंक्तियाँ डुप्लिकेट हैं, और अंतिम तीन पंक्तियाँ डुप्लिकेट हैं।

डुप्लिकेट ढूंढें

सबसे पहले, यह देखने के लिए कि कितनी पंक्तियाँ डुप्लिकेट हैं, हमारी तालिका की जाँच करें:

SELECT 
    FirstName, 
    LastName, 
    COUNT(*) AS Count
FROM Dogs
GROUP BY FirstName, LastName
HAVING COUNT(*) > 1;

परिणाम:

+-----------+----------+-------+
| FirstName | LastName | Count |
+-----------+----------+-------+
| Bark      | Smith    |     2 |
| Wag       | Johnson  |     3 |
+-----------+----------+-------+

हम देख सकते हैं कि बार्क स्मिथ के साथ दो पंक्तियाँ हैं, और वैग जॉनसन के साथ तीन पंक्तियाँ हैं।

हम तालिका को डी-डुप्लिकेट करेंगे ताकि इसमें प्रत्येक में से केवल एक ही शामिल हो।

डुप्लिकेट हटाएं

निम्नलिखित कोड को चलाने से उपरोक्त तालिका का भ्रम दूर हो जाता है:

DELETE d1 FROM Dogs d1
INNER JOIN Dogs d2
WHERE
    d1.DogId < d2.DogId AND
    d1.FirstName = d2.FirstName AND
    d1.LastName = d2.LastName;

परिणाम:

Query OK, 3 rows affected (0.00 sec)

आइए देखें परिणाम:

SELECT * FROM Dogs;

परिणाम:

+-------+-----------+----------+
| DogId | FirstName | LastName |
+-------+-----------+----------+
|     2 | Bark      | Smith    |
|     3 | Woof      | Jones    |
|     4 | Ruff      | Robinson |
|     7 | Wag       | Johnson  |
+-------+-----------+----------+

हमने टेबल से डुप्लीकेट पंक्तियों को सफलतापूर्वक हटा दिया है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL क्वेरी अल्पविराम से अलग किए गए स्ट्रिंग में मान ढूंढती है

  2. Oracle विषम सेवाओं के साथ MySQL का उपयोग करना

  3. SQLite INSERT - डुप्लीकेट कुंजी अद्यतन पर (UPSERT)

  4. PyInstaller, कल्पना फ़ाइल, ImportError:'blah' नाम का कोई मॉड्यूल नहीं

  5. प्रोपराइटरी से ओपन सोर्स डेटाबेस में माइग्रेट करने के लिए टिप्स