sql - Searching for keywords in two MySQL columns -


मेरे पास first_name और last_name कॉलम के साथ एक उपयोगकर्ता तालिका है

  चयन करें * उपरोक्त का उपयोग करके, अगर मैं " जॉन "या" डो "के लिए मुझे हिट मिलेगा  

लेकिन अगर मैं "जॉन डो" की खोज करता हूं तो मुझे 0 परिणाम मिलेंगे। मैं एक तरह से MySQL को कैसे खोज सकता हूँ जो सिर्फ एक या दूसरे के बजाय "प्रथम_नाम अंतिम_नाम" से मेल खाएगा?

< P> एक समाधान आपके आवेदन में कीवर्ड को विभाजित करना है, और फिर क्वेरी को निम्नानुसार बनाएं:
  - स्प्लिट "जॉन डो" - & gt; "जॉन", "डो" का चयन करें * उपयोगकर्ता से (जहां 'first_name' '% keyword_1%' या 'last_name' '% keyword_1%' जैसे 'first_name') और ('% keyword_2%' जैसे पहले 'नाम' या '% keyword_2%' जैसे last_name)) " / कोड>  

उपरोक्त भी "जो जो" से मेल खाता होगा, न कि "जो डो" यदि आप अधिक कॉलमों में खोज रहे हैं, तो आपको बड़ा हो जाएगा, क्योंकि आपको प्रत्येक कीवर्ड के लिए "और ब्लॉक" जोड़ना होगा।

इसके अलावा, यह एक बड़ी कार्यक्षमता लागत के साथ आता है, क्योंकि ऐसी कोई क्वेरी है पहले_नाम और अंतिम_नाम पर इंडेक्स का उपयोग करने में असमर्थ हैं, अगर कोई भी हो एक बेहतर तरीका उपयोग करना होगा।


Comments

Popular posts from this blog

.net - C# List<T>.Find(x=>x.Rectangle.Contains(Point)) FAIL -

iphone - Smoothing a rounded stroke in Core Graphics -

c++ - QtQuick: QQmlApplicationEngine failed to load component qrc:/main.qml:23 Invalid attached object assignment -