2013-02-12 11 views
11

में समान मान खोजने के लिए अच्छा mysql क्वेरी मेरे पास डुप्लिकेट प्रविष्टियां हैं जो बहुत समान हैं, लेकिन सटीक नहीं हैं। यहाँ कुछ उदाहरण हैं:एक ही कॉलम

- 2016: Obama's America 
- 2016: Obama's America (VF) 

- Hurt Locker 
- The Hurt Locker 

क्या एक प्रश्न है कि मैं संभवतः समान titles प्राप्त करने के लिए इस्तेमाल कर सकते हैं हो सकता है?

अद्यतन: कृपया ध्यान दें कि मैं EXACT डुप्लीकेट को हटाने का प्रयास नहीं कर रहा हूं। मैं केवल एक ही कॉलम में समान मानों का चयन करने की कोशिश कर रहा हूं।

+3

अच्छा सवाल! शायद [soundex] के साथ कुछ (http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex)? –

+0

परिभाषित करें "समान" – Tchoupi

+0

@ अर्नोल्डडैनियल अच्छा विचार, संदर्भ के लिए धन्यवाद। – David542

उत्तर

3

सुनिश्चित नहीं है कि यह सबसे अच्छा तरीका है या सबसे कुशल है, और यह निश्चित रूप से इसी तरह के अर्थ पर निर्भर करता है। तो अर्थ शीर्षक एक पंक्ति लेकिन एक और पंक्ति में पाठ में से कुछ में पाठ के सभी शामिल है, तो कुछ इस तरह काम करना चाहिए:

SELECT DISTINCT T.Title 
FROM YourTable T 
    LEFT JOIN YourTable T2 ON T.Title != T2.Title 
WHERE T.Title LIKE CONCAT('%', T2.Title, '%') 
UNION 
SELECT DISTINCT T2.Title 
FROM YourTable T 
    LEFT JOIN YourTable T2 ON T.Title != T2.Title 
WHERE T.Title LIKE CONCAT('%', T2.Title, '%') 
ORDER BY Title 

और यहाँ SQL Fiddle है।

+0

मुझे नहीं लगता कि यह करेगा। फिल्म [अमेरिका] (http://www.imdb.com/title/tt1670931/) इसमें अमेरिका के साथ सभी फिल्मों से मेल खाती है। –

+0

@ आर्नोल्ड डैनियल - हाँ, जैसे मैंने कहा, समान ही अस्पष्ट है :) फिर भी दिलचस्प सवाल। मैं आपसे पूछना चाहता हूं - अमेरिका को क्या मिलना चाहिए? केवल अमेरिका की तरह फिल्में, लेकिन अमेरिका महान नहीं :) शुभकामनाएँ। – sgeddes

+0

@ आर्नोल्डडैनियल - एक विकल्प अधिकतम लंबाई अंतर जोड़ना होगा - यहां एक त्वरित पहेली है: http://sqlfiddle.com/#!2/17173/1 – sgeddes

3

मुझे लगता है कि इसे string metric के साथ तारों के बीच की दूरी को मापकर हल किया जा सकता है।

लेवेनशेटिन सबसे प्रसिद्ध मेट्रिक प्रतीत होता है और मैंने ओरेकल में इसके कुछ कार्यान्वयन का उपयोग किया है। यह implemented for MySQL भी है। आपको कुछ अन्य मीट्रिक मिल सकती है जो आपके लिए बेहतर काम करेगी।

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