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

एकाधिक फ़ील्ड के आधार पर SQL तालिका में डुप्लिकेट को कैसे हटाएं

डेटा को हटाने के लिए आपको एक सहसंबद्ध सबक्वेरी करने में सक्षम होना चाहिए। डुप्लीकेट वाली सभी पंक्तियां ढूंढें और सबसे छोटी आईडी वाली सभी पंक्तियों को हटा दें। MYSQL के लिए, एक आंतरिक जुड़ाव (EXISTS के कार्यात्मक समकक्ष) का उपयोग करने की आवश्यकता है, जैसे:

delete games from games inner join 
    (select  min(id) minid, date, time,
             hometeam_id, awayteam_id, locationcity, locationstate
     from games 
     group by date, time, hometeam_id, 
              awayteam_id, locationcity, locationstate
     having count(1) > 1) as duplicates
   on (duplicates.date = games.date
   and duplicates.time = games.time
   and duplicates.hometeam_id = games.hometeam_id
   and duplicates.awayteam_id = games.awayteam_id
   and duplicates.locationcity = games.locationcity
   and duplicates.locationstate = games.locationstate
   and duplicates.minid <> games.id)

परीक्षण करने के लिए, delete games from games replace को बदलें select * from games . के साथ . अपने DB :-) पर केवल एक डिलीट न चलाएँ

  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. MySQL में एक वेरिएबल का प्रकार प्राप्त करें

  3. पीएचपी पीडीओ फ़ेच अशक्त

  4. MySQL IN स्टेटमेंट के लिए PDO बाइंडिंग मान

  5. तालिका अपडेट होने पर MySQL ट्रिगर से ईमेल भेजें