INSTR का उपयोग करना है:
SELECT *
FROM TABLE a
JOIN TABLE b ON INSTR(b.column, a.column) > 0
तरह का उपयोग करना: की तरह उपयोग करना
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'
, concat साथ:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
मन है कि सभी विकल्प में, तो आप शायद स्तंभ मान ड्राइव करने के लिए सुनिश्चित करने के लिए आप मामले संवेदनशीलता के लिए चिंता का विषय के बिना मैचों हो रही है की तुलना करने से पहले अपरकेस चाहता हूँ:
SELECT *
FROM (SELECT UPPER(a.column) 'ua'
TABLE a) a
JOIN (SELECT UPPER(b.column) 'ub'
TABLE b) b ON INSTR(b.ub, a.ua) > 0
सबसे कुशल पर अंततः निर्भर करेगा EXPLAIN plan आउटपुट।
JOIN
खंड WHERE
खंड लिखने के समान हैं। JOIN
सिंटैक्स को एएनएसआई जॉइन के रूप में भी जाना जाता है क्योंकि उन्हें मानकीकृत किया गया था। गैर एएनएसआई देखने मिलती है जैसे:
SELECT *
FROM TABLE a,
TABLE b
WHERE INSTR(b.column, a.column) > 0
मैं एक उदाहरण के गैर एएनएसआई बायाँ शामिल हों के साथ परेशान करने के लिए नहीं जा रहा हूँ। एएनएसआई जॉइन सिंटैक्स का लाभ यह है कि यह WHERE
खंड में वास्तव में क्या हो रहा है, उससे तालिकाओं में शामिल होने से अलग हो जाता है।
स्रोत
2009-09-06 17:36:13
धन्यवाद..मैं एक ही कार्यक्षमता कैसे प्राप्त करूंगा लेकिन इसे और अधिक कुशल बनाऊंगा? –
यह है कि आप इसे कैसे करेंगे। यदि आपको इसे अधिक कुशल होने की आवश्यकता है, तो आप तालिका बी –
पर MYCOL फ़ील्ड को इंडेक्स कर सकते हैं यदि आप MyISAM तालिका प्रकार का उपयोग कर रहे हैं, तो आप एक पूर्ण टेक्स्ट इंडेक्स आज़मा सकते हैं और देख सकते हैं कि इससे मदद मिलती है या नहीं। आम तौर पर, पूर्ण पाठ खोज MySQL की ताकत नहीं है। यदि पूर्ण पाठ खोज आपके आवेदन का मुख्य हिस्सा है, तो Apache Lucene - http://lucene.apache.org/java/docs/ – Asaph