LIKE _
. का उपयोग करके पैटर्न मिलान का समर्थन करता है किसी एकल वर्ण और %
. के लिए वर्णों के किसी भी क्रम के लिए यह:
SELECT 'thomas' LIKE '%(h|x)%'
काम नहीं करता क्योंकि LIKE को समझ नहीं आता (...)
समूहीकरण या |
. के लिए प्रत्यावर्तन के लिए, वे LIKE पैटर्न में केवल शाब्दिक वर्ण हैं।
SIMILAR TO सपोर्ट करता है _
और %
LIKE के समान लेकिन (...)
. के साथ समूहीकरण जोड़ता है , के साथ विकल्प |
, और कुछ अन्य चीज़ें इसलिए यह:
SELECT 'thomas' SIMILAR TO '%(h|x)%'
उम्मीद के मुताबिक काम करता है।
~*
POSIX रेगेक्स का उपयोग करता है इसलिए (...)
समूहीकरण के लिए है और |
विकल्प के लिए है लेकिन %
सिर्फ एक प्रतिशत संकेत है; इसका मतलब है कि यह:
SELECT 'thomas' ~* '%(h|x)%'
एक h
की तलाश में है या x
प्रतिशत चिह्नों से घिरा हुआ है और आपकी अपेक्षा के अनुरूप काम नहीं करता है।
आपका ~*
यदि आप उचित रेगेक्स का उपयोग करते हैं तो संस्करण काम करेगा:
SELECT 'thomas' ~* '(h|x)' -- alternation
SELECT 'thomas' ~* 'h|x' -- alternation without an unnecessary grouping
SELECT 'thomas' ~* '[hx]' -- or a character class
उपरोक्त से जुड़े दस्तावेज़ों में यह सब शामिल है।