sql - How to look for a specific string using the LIKE command -


मेरे पास एक एसक्यूएल संग्रहित प्रक्रिया में निम्नलिखित WHERE कथन है, जिसे मैं एक मेज के खिलाफ जांच रहा हूँ XML के रूप में डेटा संग्रहीत करता है:

  WHERE (CAST ([content_html] एएसएमएल के रूप में)। मूल्य ('(/ रूट / चिकित्सक / विशेषता / एक / पाठ ()) [1]', 'varchar (अधिकतम) 'की तरह'% '+ @strservice +'% 'या CAST ([content_html] एएसएमएम)। मूल्य (' (/ रूट / चिकित्सक / विशेषता 2 / एक / पाठ ()) [1] ',' varchar (अधिकतम) 'की तरह'% '+ @strservice +'% 'या CAST ([content_html] एएसएमएम)। मूल्य (' (/ रूट / चिकित्सक / विशेषता 3 / एक / पाठ ()) [1] ',' varchar (अधिकतम) '' की तरह '%' + @strservice + '%' या CAST ([content_html] एएस एक्सएमएल)। मूल्य ('(/ रूट / चिकित्सक / विशेषता 4 / एक / पाठ ()) [1]', 'varchar (अधिकतम) '' की तरह '%' + @strservice + '%' या CAST ([content_html] एएसएमएम)। मूल्य ('(/ रूट / चिकित्सक / विशेषता 5 / एक / पाठ ()) [1]', 'varchar (अधिकतम) 'की तरह'% '+ @strservice +'% 'या CAST ([content_html] एएसएमएम)। मूल्य (' (/ रूट / चिकित्सक / विशेषीकृत 6 / एक / पाठ ()) [1] ',' varchar (अधिकतम) ') पसंद करें'% '+ @strservice + '%')  

strService आगे के अंत में से मेरे कोड के लिए भेजा जाता है- जो कि संग्रहीत कार्यविधि चलाता है।

प्रत्येक OR स्टेटमेंट प्रत्येक टेक्स्टबॉक्स को XML दस्तावेज़ में दर्शाता है। उदाहरण के लिए, यदि मैं @strService = urology भेजता हूं मूत्रविज्ञान , और न्यूरोलॉजी की खोज के लिए खोज करता है, क्योंकि मूत्रविज्ञान भी न्यूरोलॉजी में है

मैं यह कैसे देख सकता हूं कि सामग्री @str सेवा के बराबर है या यदि शब्द इसके चारों ओर गैर-अक्षर वाली सामग्री के भीतर कहीं मौजूद है या यदि यह अनुक्रम में या तो निम्न या पूर्ववर्ती गैर-पत्र के साथ सामग्री की बहुत शुरुआत या बहुत अंत में है

यहाँ एक उदाहरण है:

मेरे पास निम्न प्रविष्टियां हैं:

  बाल चिकित्सा मूत्रविज्ञान मूत्रविज्ञान न्यूरोलॉजी  

मेरे पास निम्न जैसा कथन है:

जैसे 'मूत्रविज्ञान' = केवल उरोस्थि प्रदर्शित किया जाता है

'यूआरोलॉजी' की तरह =

LIKE '% [^ a-zA-Z] यूरोलॉजी' = केवल बाल चिकित्सा मूत्रविज्ञान प्रदर्शित किया जाता है

मैं इस मामले में बाल चिकित्सा मूत्रविज्ञान और मूत्रविज्ञान दिखाना चाहूंगा।

जब तक शब्द में एक स्थान के साथ मौजूद है, इसके सामने, मैं दिखाना चाहूंगा।

निम्न अभिव्यक्ति का प्रयोग करें:

  सामग्री की तरह @strservice या सामग्री की तरह '% [^ a-zA-Z0-9]' + @strservice + '[^ a-zA-Z]%' या सामग्री की तरह @strservice + '[^ a- ZA-Z]% 'या सामग्री की तरह'% [^ a-zA-Z] '+ @strservice  

ये एक स्पष्टीकरण है:

  सामग्री की तरह @strservice  

समानता की जांच करेगा

  सामग्री की तरह '% [^ a-zA-Z0-9]' + @strservice + '[^ a -एजेए-जेड]% ' 

उस केस की जांच करेगा जहां उस शब्द को चारों ओर गैर-अक्षरों वाली सामग्री के भीतर कहीं मौजूद है

  CONTENT LIKE @strservice + '[^ A-zA-Z]%'  

वील मामले की जांच करें जहां शब्द किसी गैर-पत्र के साथ सामग्री की शुरुआत में मौजूद है

  सामग्री की तरह '% [^ a-zA-Z]' + @strservice  

उस केस की जांच करेगा जहां कोई भी गैर-पत्र पूर्ववर्ती सामग्री के अंत में शब्द मौजूद है

यदि आप संभावित आसन्न अक्षरों के सेट से नंबरों को बाहर करना चाहते हैं, तो के स्थान पर [^ a-zA-Z0- 9] का उपयोग करें -ZA-Z]

आशा है कि यह मदद करता है!


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -