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

MySQL:कॉलम डुप्लिकेट मानों के आधार पर तालिका पंक्तियों को हटा दें?

मुझे लगता है कि आप केवल IGNORE का उपयोग करके एक UNIQUE INDEX जोड़ने का प्रयास कर सकते हैं:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);

MySQL को कुछ इस तरह से जवाब देना चाहिए:

Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0

बेशक, आप यह तय करने के लिए MySQL पर छोड़ देंगे कि किन पंक्तियों को छोड़ना है।

संपादित करें:

यह जितने चाहें उतने कॉलम के लिए काम करता है:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);

क्रिएट इंडेक्स पर MySQL के दस्तावेज़ देखें। . एक सामान्य गोचा (कम से कम एक बार मैं भाग गया) यह भूल जाना है कि NULL = NULL सत्य नहीं है (लेकिन NULL ), इसलिए {42, NULL} और {42, NULL} को दो कॉलम पर UNIQUE इंडेक्स के लिए अनुमति है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ड्रॉप डेटाबेस रिटर्न डेटाबेस को छोड़ने में त्रुटि त्रुटि:66 MySQL में

  2. MySQL स्टेटमेंट में अलग-अलग पॉजिटिव और नेगेटिव नंबरों द्वारा ऑर्डर करें

  3. mysqli एक्सटेंशन में डेबियन गायब है

  4. आईपी-आधारित कोल्डाउन अवधि प्रदान करने का एक पोर्टेबल तरीका?

  5. कई-से-अनेक पर MySQL फ़िल्टर