2012-03-02 13 views
6

मैं एक mysql डेटाबेस में डुप्लिकेट रिकॉर्ड के साथ कुछ करने का प्रयास कर रहा हूं। हालांकि, मैं रिकॉर्ड्स को मिटाना नहीं चाहता हूं, और केवल दो कॉलम डुप्लिकेट हैं। मैं इन रिकॉर्ड्स को कैसे ढूंढ सकता हूं?mysql डेटाबेस से केवल डुप्लिकेट रिकॉर्ड का चयन करें

+0

http://stackoverflow.com/questions/854128/find-duplicate-records-in-mysql –

उत्तर

9

क्या आप तालिका संरचना के बारे में अधिक जानकारी पोस्ट कर सकते हैं और आपका क्या मतलब है कि कुछ डुप्लिकेट हैं लेकिन केवल दो कॉलम हैं?

वैसे भी, आप GROUP BY, COUNT पर गौर कर सकते हैं, और HAVING

SELECT `duped_field1`, `duped_field2`, COUNT(*) `tot` 
FROM `table` 
GROUP BY `duped_field1`, `duped_field2` 
HAVING `tot` > 1 
3

डुप्लिकेट को खोजने के लिए सामान्य सिद्धांत सिर्फ group by और having count(*) > 1

उपयोग करने के लिए आप सिर्फ डुप्लिकेट कॉलम जानना चाहते हैं है मूल्य:

select col1, col2 
from table 
group by col1, col2 
having count(*) > 1 

यदि आप देखना चाहते हैं सभी क्षेत्रों जहां दो कॉलम दोहराया गया है:

select t.* 
from @tbl t 
where exists (select * 
       from @tbl d 
       where d.col1 = t.col1 and d.col2 = t.col2 
       group by d.col1 
       having COUNT(*) > 1) 
+0

या बस एक '*' .. '* का चयन करें जोड़ने के लिए, COUNT (*) कुल' – Fabrizio

संबंधित मुद्दे