मैच वाइल्डकार्ड शुरू करने के साथ काम नहीं करता है, इसलिए *abc*
. के साथ मिलान करना काम नहीं करेगा। आपको LIKE
. का उपयोग करना होगा इसे हासिल करने के लिए:
SELECT * FROM user WHERE user_login LIKE '%abc';
हालांकि यह बहुत धीमा होगा।
यदि आपको वास्तव में स्ट्रिंग के अंत के लिए मिलान करने की आवश्यकता है, और प्रदर्शन आपको मार रहा है, तो आपको अक्सर ऐसा करना पड़ता है, एक समाधान एक अलग कॉलम बनाना होगा जिसमें आप स्ट्रिंग्स को उलट दें, तो आपको मिल गया:
user_login user_login_rev
xyzabc cbazyx
फिर, '%abc'
. की तलाश करने के बजाय , आप 'cba%'
. की तलाश कर सकते हैं जो कॉलम अनुक्रमित होने पर बहुत तेज़ है। और यदि आप 'cba*'
. खोजना चाहते हैं तो आप फिर से MATCH का उपयोग कर सकते हैं . आपको बस सर्च स्ट्रिंग को भी उलटना होगा।