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
उपरोक्त से जुड़े दस्तावेज़ों में यह सब शामिल है।