2012-04-06 15 views
15

मैं मौजूदा डेटाबेस के साथ काम कर रहा हूं जिसका नाम पहले नाम और अंतिम नाम डेटाबेस में अलग है। मुझे एक ऐसा फ़ंक्शन बनाना होगा जो एक खोज इनपुट और परिणाम लौटाएगा। कहते हैं कि मेरी डेटाबेस की तरह एक संरचना है ....अलग-अलग कॉलम में पहले और अंतिम नाम के साथ MySQL डेटाबेस में पूरा नाम या पहला या अंतिम नाम

nameFirst nameLast 
Joe  Smith 
Joe  Jones 
Joe  Brown 

कैसे कर सकता है मैं, का उपयोग कर MySQL, एक खोज इनपुट वह यह है कि कहते हैं, 'जो स्मिथ' और सिर्फ उसकी पंक्ति पाने के लिए ले? लेकिन अगर मैं खोज क्षेत्र में 'जो' डालता हूं, तो उन्हें सब वापस कर दें? क्या मुझे एक जगह के साथ स्ट्रिंग को विस्फोट करने की आवश्यकता होगी? धन्यवाद!

+0

आप भी खोजने के लिए 'स्मिथ, जो', या 'जोसेफ स्मिथ' की जरूरत है? – Randy

+1

स्ट्रिंग को विस्फोट करना एक तरीका है, लेकिन अगर मध्य प्रारंभिक या नाम शामिल है तो क्या होगा? – dqhendricks

+0

खोज सबसे अधिक संभावना 'जो स्मिथ' की तरह होगी ... डेटाबेस में कुछ उदाहरण भी हैं जहां। जेआरएस और ऐसे –

उत्तर

34
SELECT * 
FROM table 
WHERE CONCAT(nameFirst, ' ', nameLast) LIKE '%Joe%' 

इस तरह के "जो" के रूप में किसी भी उपयोगकर्ता प्रस्तुत मापदंडों को साफ़ करने में सुनिश्चित करें

+8

यह शायद एक बड़ी मेज पर काफी धीमी होगी .. –

+2

मैंने कोडनिर्देशक एक्टिव्रेकॉर्ड का उपयोग किया लेकिन यहां क्या है मैं उपयोग कर समाप्त हो गया ... $ term = $ search_array ['term']; $ query = $ this-> डीबी-> क्वेरी ("चयन * डेटाबेस से जहां CONCAT (nameFirst, '', nameLast) '% $ term%' '); –

+1

यह मेरे लिए काम किया। –

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

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