यह बहुत अजीब है, मैंने पिछले 15 वर्षों में कई बार इस मुद्दे से संघर्ष किया है और आम तौर पर संरचनाओं के साथ आता है जो अलग-अलग क्षेत्रों में अलग-अलग क्षेत्र कोड, देश कोड और संख्या अलग-अलग होते हैं। लेकिन आपके प्रश्न को पढ़ने के दौरान एक और समाधान बस पॉप हो गया मेरे दिमाग में, इसे एक अलग क्षेत्र की आवश्यकता है, हालांकि यह आपके लिए उपयुक्त नहीं हो सकता है।
आपके पास रिवर्स_फोन_नंबर नामक एक अलग फ़ील्ड हो सकता है, क्या यह स्वचालित रूप से डीबी इंजन द्वारा पॉप्युलेट हो जाता है, जब लोग खोज स्ट्रिंग को केवल रिवर्स खोजते हैं और अनुक्रमित रिवर्स फ़ील्ड का उपयोग केवल एक% के साथ स्ट्रिंग के अंत में करते हैं, जिससे उपयोग की अनुमति मिलती है सूचकांक।
आपके डीबी इंजन के आधार पर आप एक उपयोगकर्ता-परिभाषित फ़ंक्शन के आधार पर एक इंडेक्स बनाने में सक्षम हो सकते हैं जो आपके लिए एक अतिरिक्त फ़ील्ड की आवश्यकता को कम करने के लिए उल्टा करता है।
कुछ देशों में, उदा। यूके, आपको अग्रणी शून्य के साथ कोई समस्या हो सकती है। यूके के फ़ोन नंबर को (क्षेत्र कोड) (फ़ोन नंबर) के रूप में दर्शाया जाता है उदा। 01634 511098, जब इसका अंतर्राष्ट्रीयकरण किया जाता है, तो क्षेत्र कोड का अग्रणी शून्य हटा दिया जाता है और अंतर्राष्ट्रीय डायल कोड (+ या 00) और देश कोड (44) जोड़ दिया जाता है। इसके परिणामस्वरूप अंतरराष्ट्रीय फोन नंबर +441634511098 मिलता है। 0163451109 की खोज करने वाले किसी भी उपयोगकर्ता को फ़ोन नंबर नहीं मिलेगा यदि इसे अंतर्राष्ट्रीय प्रारूप में दर्ज किया गया था। आप खोज स्ट्रिंग से प्रमुख शून्य हटाकर इस समस्या को दूर कर सकते हैं।
संपादित करें ओली जोन्स के सुझावों के आधार पर आपको उपयोगकर्ता द्वारा दर्ज की गई संख्या को स्टोर करना चाहिए और फिर उलटे क्षेत्र में उलटने और संग्रहीत करने से पहले नंबर से अग्रणी शून्य, विराम चिह्न और सफेद स्थान को हटा देना चाहिए। फिर उलटने से पहले खोज स्ट्रिंग को अलग करने के लिए बस उसी एल्गोरिदम का उपयोग करें, रिकॉर्ड ढूंढें और फिर मूल रूप से दर्ज की गई संख्या को उपयोगकर्ता को वापस प्रदर्शित करें।