LIKE एक्सप्रेशन में विशेष वर्णों से बचने के लिए आप उन्हें एक एस्केप वर्ण के साथ उपसर्ग करते हैं। आपको ESCAPE कीवर्ड के साथ उपयोग करने के लिए कौन सा एस्केप चार चुनना है। (एमएसडीएन रेफरी)
उदाहरण के लिए यह % प्रतीक से बच जाता है, \ का उपयोग एस्केप चार के रूप में करता है:
select * from table where myfield like '%15\% off%' ESCAPE '\'
यदि आप नहीं जानते कि आपकी स्ट्रिंग में कौन से वर्ण होंगे, और आप उन्हें वाइल्डकार्ड के रूप में नहीं मानना चाहते हैं, तो आप सभी वाइल्डकार्ड वर्णों को एस्केप चार के साथ उपसर्ग कर सकते हैं, जैसे:
set @myString = replace(
replace(
replace(
replace( @myString
, '\', '\\' )
, '%', '\%' )
, '_', '\_' )
, '[', '\[' )
(ध्यान दें कि आपको अपने एस्केप चार से भी बचना होगा, और सुनिश्चित करें कि यह आंतरिक replace
है ताकि आप दूसरे से जोड़े गए replace
. से बच न सकें बयान)। फिर आप कुछ इस तरह इस्तेमाल कर सकते हैं:
select * from table where myfield like '%' + @myString + '%' ESCAPE '\'
अपने @myString चर के लिए अधिक स्थान आवंटित करना भी याद रखें क्योंकि यह स्ट्रिंग प्रतिस्थापन के साथ लंबा हो जाएगा।