अपना WHERE
संशोधित करें इस तरह की स्थिति:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
यह उन तरीकों में से एक है जिसमें Oracle भागने वाले पात्रों का समर्थन करता है। यहां आप एस्केप कैरेक्टर को escape
. के साथ परिभाषित करते हैं खोजशब्द। विवरण के लिए Oracle डॉक्स पर यह लिंक देखें।
'_'
और '%'
वाइल्डकार्ड एक LIKE
. में होते हैं SQL में ऑपरेटेड स्टेटमेंट।
_
चरित्र (कोई भी) एक एकल चरित्र की उपस्थिति की तलाश करता है। अगर आप columnName LIKE '_abc'
. से सर्च करते हैं , यह आपको 'aabc'
. वाली पंक्तियों के साथ परिणाम देगा , 'xabc'
, '1abc'
, '#abc'
लेकिन नहीं 'abc'
, 'abcc'
, 'xabcd'
और इसी तरह।
'%'
वर्ण का उपयोग 0 या अधिक वर्णों के मिलान के लिए किया जाता है। यानी अगर आप columnName LIKE '%abc'
. से सर्च करते हैं , यह आपको 'abc'
. होने के साथ परिणाम देगा , 'aabc'
, 'xyzabc'
और इसी तरह, लेकिन कोई 'xyzabcd'
, 'xabcdd'
और कोई अन्य स्ट्रिंग जो 'abc'
. के साथ समाप्त नहीं होती है ।
आपके मामले में आपने '%_%'
. द्वारा खोजा है . यह उस कॉलम के साथ सभी पंक्तियों को एक या अधिक वर्ण देगा, जिसका अर्थ है कि कोई भी वर्ण, इसके मूल्य के रूप में। यही कारण है कि _
. न होने पर भी आपको सभी पंक्तियां मिल रही हैं आपके कॉलम मानों में।