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

तालिका से डुप्लिकेट पंक्तियों को हटाना

हां, मान लें कि आपके पास एक अद्वितीय आईडी फ़ील्ड है, तो आप आईडी को छोड़कर सभी समान रिकॉर्ड हटा सकते हैं, लेकिन उनके मूल्यों के समूह के लिए "न्यूनतम आईडी" नहीं है।

उदाहरण क्वेरी:

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY Field1, Field2, Field3, ...
)

नोट:

  • मैंने स्वतंत्र रूप से "टेबल" और "आईडी" को प्रतिनिधि नामों के रूप में चुना
  • फ़ील्ड की सूची ("फ़ील्ड1, फ़ील्ड2, ...") में आईडी को छोड़कर सभी फ़ील्ड शामिल होने चाहिए
  • फ़ील्ड और पंक्तियों की संख्या के आधार पर यह एक धीमी क्वेरी हो सकती है, हालांकि मुझे उम्मीद है कि विकल्पों की तुलना में यह ठीक रहेगा

संपादित करें:यदि आपके पास एक अद्वितीय अनुक्रमणिका नहीं है, तो मेरी अनुशंसा है कि आप केवल एक स्वत:वृद्धिशील अद्वितीय अनुक्रमणिका जोड़ें। मुख्य रूप से इसलिए कि यह अच्छा डिज़ाइन है, बल्कि इसलिए भी कि यह आपको उपरोक्त क्वेरी को चलाने की अनुमति देगा।



  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 COUNT DISTINCT

  2. MySQL में एक टेबल का आकार कैसे प्राप्त करें

  3. JSON_EXTRACT () - MySQL में JSON दस्तावेज़ से डेटा लौटाएं

  4. SQL सर्वर 2016 - निष्पादन योजनाओं की तुलना करना

  5. तंग करना? #1146 - तालिका 'xxx.xxxxx' मौजूद नहीं है