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

तालिका में डुप्लिकेट प्रविष्टियाँ हटाएं

ऐसा करने का एक तरीका LEFT JOIN . का उपयोग करके एक सबक्वेरी पर तालिका में शामिल होना है . सबक्वेरी को सबसे कम ID मिलता है प्रत्येक UID . के लिए . जब किसी रिकॉर्ड का सबक्वेरी पर मिलान नहीं होता है, तो इसका सीधा सा मतलब है कि उसका कोई मेल खाने वाला रिकॉर्ड नहीं है और उसे सुरक्षित रूप से हटाया जा सकता है।

DELETE  a
FROM    TableName a
        LEFT JOIN
        (
            SELECT  uid, MIN(ID) min_ID
            FROM    TableName
            GROUP   BY uid
        ) b ON  a.uid = b.uid AND
                a.ID = b.min_ID
WHERE   b.uid IS NULL

हालांकि, अगर UID . के रिकॉर्ड अलग-अलग नाम हो सकते हैं, तो आपको name . शामिल करना होगा group by . पर खंड या फिर केवल अद्वितीय uid सबसे कम ID . के साथ रहेगा।

DELETE  a
FROM    TableName a
        LEFT JOIN
        (
            SELECT  uid, MIN(ID) min_ID, name
            FROM    TableName
            GROUP   BY uid, name
        ) b ON  a.uid = b.uid AND
                a.ID = b.min_ID AND
                a.name = b.name
WHERE   b.uid IS NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2038-01-19 के बाद MySQL from_unixtime?

  2. गलत अपवाद पकड़ना

  3. विभिन्न DATE श्रेणियों में SUM पुनर्प्राप्त करने के लिए SQL क्वेरी

  4. मैं mysql कमांड लाइन में उच्च-सटीक क्वेरी समय कैसे देख सकता हूं?

  5. जावा से MySQL डेटाबेस बनाएं