मैं अंडरस्कोर चरित्र से कैसे बच सकता हूं?
मैं निम्नलिखित कुछ लिख रहा हूं जहां क्लॉज और अंत में _d के साथ वास्तविक प्रविष्टियां खोजने में सक्षम होना चाहता हूं।
Where Username Like '%_d'
मैं अंडरस्कोर चरित्र से कैसे बच सकता हूं?
मैं निम्नलिखित कुछ लिख रहा हूं जहां क्लॉज और अंत में _d के साथ वास्तविक प्रविष्टियां खोजने में सक्षम होना चाहता हूं।
Where Username Like '%_d'
जवाबों:
आप वाइल्डकार्ड पैटर्न के मिलान वाले अक्षरों का उपयोग शाब्दिक वर्णों के रूप में कर सकते हैं। वाइल्डकार्ड वर्ण को शाब्दिक वर्ण के रूप में उपयोग करने के लिए, कोष्ठक में वाइल्डकार्ड वर्ण संलग्न करें। निम्न तालिका LIKE कीवर्ड और [] वाइल्डकार्ड वर्णों का उपयोग करने के कई उदाहरण दिखाती है।
आपके मामले के लिए:
... LIKE '%[_]d'
जाहिर है @Lasse समाधान सही है, लेकिन आपकी समस्या को हल करने का एक और तरीका है: टी-एसक्यूएल ऑपरेटर LIKE
वैकल्पिक ESCAPE क्लॉज को परिभाषित करता है , जो आपको एक चरित्र घोषित करने की अनुमति देता है जो पैटर्न में अगले चरित्र से बच जाएगा।
आपके मामले के लिए, निम्नलिखित क्लॉज समकक्ष हैं:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
ESCAPE
खंड SQL मानक का हिस्सा है और किसी भी DBMS पर काम करेगा, न कि केवल SQL सर्वर पर।
यह मेरे लिए काम किया, बस भागने का उपयोग करें
'%\_%'
इनमें से किसी ने भी मेरे लिए SS18 v18.0 में काम नहीं किया, इसलिए मैं कुछ इस तरह से काम करूंगा: ..
WHERE CHARINDEX('_', thingyoursearching) < 1
जहाँ मैं उनमें अंडरस्कोर के साथ तार को अनदेखा करने की कोशिश कर रहा हूँ। यदि आप उन चीजों को ढूंढना चाहते हैं जिनमें अंडरस्कोर है, तो बस इसे चारों ओर फ्लिप करें:
WHERE CHARINDEX('_', thingyoursearching) > 0