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

MySQL डेटाबेस से कई फ़ील्ड डुप्लीकेट चुनें

thread_id . प्राप्त करने के लिए एक बहुत ही आसान समाधान है view_count . द्वारा क्रमबद्ध एक GROUP_CONCAT में . फिर, हम thread_id . प्राप्त करने के लिए स्ट्रिंग ऑपरेशंस का उपयोग कर सकते हैं न्यूनतम . के साथ view_count

अपने SELECT . में खंड, के बजाय t.thread_id , आप निम्न कोशिश कर सकते हैं:

SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT t.thread_id 
                             ORDER BY t.view_count ASC 
                             SEPARATOR ','), 
                ',', 
                1) AS thread_id_with_minimum_views

अब, SELECT . के आधार पर न्यूनतम दृश्य के साथ डुप्लिकेट रिकॉर्ड की पहचान करने के लिए क्वेरी, DELETE xf_thread . से ऐसे रिकॉर्ड को हटाने के लिए क्वेरी तालिका इस प्रकार होगी:

DELETE t_delete FROM xf_thread AS t_delete 
INNER JOIN (SELECT CAST(SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT t.thread_id ORDER BY t.view_count ASC SEPARATOR ','), ',', 1) AS UNSIGNED) AS tid_min_view 
            FROM (SELECT * FROM xf_thread) t 
            INNER JOIN xf_post p ON p.thread_id = t.thread_id 
            WHERE t.first_post_id = p.post_id 
              AND t.user_id = 0 
              AND t.reply_count < 2 
            GROUP BY t.title, t.username, p.message 
            HAVING Count(t.title) > 1 
               AND Count(t.username) > 1 
               AND Count(p.message) > 1 
            ORDER BY t.thread_id) AS t_dup 
  ON t_delete.thread_id = t_dup.tid_min_view 



  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. RHEL/CentOS 6/5/4, फेडोरा 17-12 . में Mtop (MySQL डेटाबेस सर्वर मॉनिटरिंग) स्थापित करें

  3. अल्पविराम सीमांकित स्ट्रिंग को विभाजित करें -> FUNCTION db.CHARINDEX मौजूद नहीं है

  4. #1111 - समूह समारोह का अमान्य उपयोग

  5. PHP 7 RC3:लापता MySQL PDO को कैसे स्थापित करें?