MySQL में, REGEXP_LIKE() फ़ंक्शन का उपयोग यह निर्धारित करने के लिए किया जाता है कि स्ट्रिंग रेगुलर एक्सप्रेशन से मेल खाती है या नहीं।
फ़ंक्शन 1 लौटाता है यदि स्ट्रिंग प्रदान की गई नियमित अभिव्यक्ति से मेल खाती है, और 0 अगर ऐसा नहीं होता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
REGEXP_LIKE(expr, pat[, match_type])
जहां expr इनपुट स्ट्रिंग है और pat नियमित अभिव्यक्ति है जिसके लिए आप स्ट्रिंग का परीक्षण कर रहे हैं।
वैकल्पिक match_type तर्क आपको नियमित अभिव्यक्ति को परिष्कृत करने की अनुमति देता है। उदाहरण के लिए, आप match_type . का उपयोग कर सकते हैं केस-संवेदी मिलान निर्दिष्ट करने के लिए या नहीं।
उदाहरण 1 - मूल उपयोग
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT REGEXP_LIKE('Cat', '.*') Result; परिणाम:
+--------+ | Result | +--------+ | 1 | +--------+
इस मामले में, हमारी नियमित अभिव्यक्ति किसी भी क्रम में किसी भी वर्ण को निर्दिष्ट करती है, इसलिए निश्चित रूप से हमें एक मैच मिलता है। फ़ंक्शन 1 लौटाता है एक मैच को इंगित करने के लिए।
उदाहरण 2 - कोई मिलान नहीं
यहां एक उदाहरण दिया गया है जहां इनपुट स्ट्रिंग रेगुलर एक्सप्रेशन से मेल नहीं खाती:
SELECT REGEXP_LIKE('Cat', 'b+') Result; परिणाम:
+--------+ | Result | +--------+ | 0 | +--------+
इस मामले में, हमारा रेगुलर एक्सप्रेशन निर्दिष्ट करता है कि एक या अधिक b होना चाहिए किसी भी क्रम में वर्ण। हमारे इनपुट स्ट्रिंग में यह वर्ण नहीं है और इसलिए 0 लौटा दिया गया है।
उदाहरण 3 - एक स्ट्रिंग की शुरुआत का मिलान करें
यहां एक उदाहरण दिया गया है जहां रेगुलर एक्सप्रेशन निर्दिष्ट करता है कि स्ट्रिंग कुछ वर्णों से शुरू होनी चाहिए:
SELECT REGEXP_LIKE('Cat', '^Ca') Result; परिणाम:
+--------+ | Result | +--------+ | 1 | +--------+
और अगर कोई मैच नहीं होता है तो क्या होता है:
SELECT REGEXP_LIKE('Cat', '^Da') Result; परिणाम:
+--------+ | Result | +--------+ | 0 | +--------+
उदाहरण 4 - एक डेटाबेस क्वेरी
इस फ़ंक्शन का उपयोग WHERE . में किया जा सकता है डेटाबेस क्वेरीज़ का क्लॉज केवल उन्हीं पंक्तियों को लौटाता है जिनमें पैटर्न होता है:
SELECT AlbumId, AlbumName FROM Albums WHERE REGEXP_LIKE(AlbumName, '^Power');
परिणाम:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
ये रही पूरी तालिका:
SELECT AlbumId, AlbumName FROM Albums;
परिणाम:
+---------+--------------------------+ | AlbumId | AlbumName | +---------+--------------------------+ | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | +---------+--------------------------+
उदाहरण 5 - match_type तर्क
आप मिलान प्रकार निर्धारित करने के लिए एक अतिरिक्त तर्क प्रदान कर सकते हैं। यह आपको यह निर्दिष्ट करने की अनुमति देता है कि मैच केस-संवेदी है या नहीं, लाइन टर्मिनेटर शामिल करना है या नहीं, आदि।
केस-संवेदी मिलान और केस-संवेदी मिलान निर्दिष्ट करने का एक उदाहरण यहां दिया गया है:
SELECT
REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive',
REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive'; परिणाम:
+----------------+------------------+ | Case-Sensitive | Case-Insensitive | +----------------+------------------+ | 0 | 1 | +----------------+------------------+
match_type तर्क में निम्नलिखित वर्ण हो सकते हैं:
c- केस संवेदनशील मिलान।
i- केस असंवेदनशील मिलान।
m- बहु-पंक्ति मोड। स्ट्रिंग के भीतर लाइन टर्मिनेटर को पहचानें। डिफ़ॉल्ट व्यवहार केवल स्ट्रिंग एक्सप्रेशन के प्रारंभ और अंत में लाइन टर्मिनेटर का मिलान करना है।
n.चरित्र लाइन टर्मिनेटर से मेल खाता है। डिफ़ॉल्ट.पंक्ति के अंत में रुकने के लिए मिलान।u- यूनिक्स-ओनली लाइन एंडिंग्स। केवल न्यूलाइन कैरेक्टर को
.,^, और$मैच ऑपरेटर।
अधिक उदाहरण
आप बेसिक रेगुलर एक्सप्रेशन के अधिक उदाहरण MySQL REGEXP उदाहरण पर देख सकते हैं। REGEXP REGEXP_LIKE() . का समानार्थी है , ताकि आप उदाहरणों का परस्पर उपयोग कर सकें।
MySQL दस्तावेज़ से रेगुलर एक्सप्रेशन सिंटैक्स भी देखें।