दो विकल्प:
-
LIKE
का प्रयोग करें कीवर्ड, स्ट्रिंग में प्रतिशत चिह्नों के साथselect * from table where field like '%a%' or field like '%b%'.
(नोट:यदि आपकी खोज स्ट्रिंग में प्रतिशत चिह्न हैं, तो आपको उनसे बचना होगा)
-
यदि आप अपने उदाहरण में निर्दिष्ट स्ट्रिंग्स के अधिक जटिल संयोजन की तलाश कर रहे हैं, तो आप रेगुलर एक्सप्रेशन (regex) कर सकते हैं:
उनका उपयोग करने के तरीके के बारे में अधिक जानने के लिए MySQL मैनुअल देखें:http:/ /dev.mysql.com/doc/refman/5.1/hi/regexp.html
इनमें से LIKE
. का उपयोग करके सबसे सामान्य समाधान है - यह मानक SQL है, और सामान्य उपयोग में है। रेगेक्स आमतौर पर कम उपयोग किया जाता है लेकिन बहुत अधिक शक्तिशाली होता है।
ध्यान दें कि आप जो भी विकल्प चुनते हैं, आपको संभावित प्रदर्शन प्रभावों के बारे में पता होना चाहिए। इस तरह से सब-स्ट्रिंग्स को खोजने का मतलब यह होगा कि क्वेरी को पूरी टेबल को स्कैन करना होगा। यदि आपके पास एक बड़ी तालिका है, तो यह बहुत धीमी क्वेरी के लिए तैयार हो सकती है, और अनुक्रमण की कोई भी राशि मदद नहीं करेगी।
यदि यह आपके लिए एक समस्या है, और आपको एक ही चीज़ को बार-बार खोजने की आवश्यकता है, तो आप तालिका में फ़्लैग फ़ील्ड जोड़ने जैसा कुछ करना पसंद कर सकते हैं जो निर्दिष्ट करता है कि स्ट्रिंग फ़ील्ड में प्रासंगिक उप- तार। यदि आप रिकॉर्ड को अपडेट करते समय इस फ़्लैग फ़ील्ड को अप-टू-डेट रखते हैं, तो आप बस फ़्लैग से क्वेरी कर सकते हैं जब आप खोज करना चाहते हैं। इसे अनुक्रमित किया जा सकता है, और आपकी क्वेरी को बहुत तेज़ कर देगा। क्या यह प्रयास करने लायक है या नहीं यह आप पर निर्भर है, यह इस बात पर निर्भर करेगा कि LIKE
का उपयोग करके प्रदर्शन कितना खराब है ।