खोजें राशि परीक्षण स्ट्रिंग engine/mail/key
और जो इस तरह दिखता है एक मेज निम्नलिखित:मैं MySQL (InnoDB) में सर्वश्रेष्ठ मिलान पंक्ति
+-------------+
| query |
+-------------+
| engine |
| engine/pdf |
| engine/mail |
+-------------+
मैं सर्वश्रेष्ठ मिलान पंक्ति लगाना चाहते हैं। सर्वोत्तम मिलान स्ट्रिंग/पंक्ति की शुरुआत से सबसे मिलान करने वाले वर्णों द्वारा निर्दिष्ट किया जाता है।
मैंने एक RegExp बनाया है, लेकिन यह निश्चित रूप से सभी पंक्तियों से मेल खाता है और मुझे कोई भी जानकारी नहीं देगी जिसके बारे में अधिकतर वर्ण/भागों से मेल खाता है।
Regexp: ^engine(/mail(/key)?)?
मैं इस तरह MySQL के FIND_IN_SET
समारोह का उपयोग कर के बारे में एक अन्य विचार था:
`FIND_IN_SET(query,'engine,engine/mail,engine/mail/key')`
और परिणाम के आदेश में यह उत्पादन है द्वारा।
यह काम करेगा, लेकिन यह किसी भी तरह से एक अच्छा समाधान नहीं है। क्या किसी के पास इसके बारे में बेहतर विचार है?
यह कुछ भी मेल नहीं खाता। 'LENGTH (क्वेरी)' द्वारा ऑर्डर करना पर्याप्त नहीं है, क्योंकि वहां 'इंजन/वेबसाइट' जैसी पंक्ति हो सकती है जिसे तब 'इंजन/मेल' पर चुना जाएगा। –
क्षमा करें, मैंने क्वेरी को सही कर दिया है, इसलिए अब यह चल जाएगा। यह देखने के लिए अभी आज़माएं कि यह आपको परिणाम प्रदान कर रहा है या नहीं। –
इसके लिए धन्यवाद, 'FIND_IN_SET' हैक से कहीं बेहतर है! इस तरह के आसपास के रास्ते में 'LIKE' का उपयोग करना वास्तव में एक साफ चाल है! –