MySQL में कई फ़ंक्शन और ऑपरेटर हैं जो हमें रेगुलर एक्सप्रेशन (regex) का उपयोग करके संचालन करने की अनुमति देते हैं। यह आलेख दो ऑपरेटरों और एक फ़ंक्शन को प्रस्तुत करता है जो हमें यह पता लगाने में सक्षम बनाता है कि क्या कोई स्ट्रिंग किसी दिए गए पैटर्न द्वारा निर्दिष्ट रेगुलर एक्सप्रेशन से मेल खाती है।
ये रेगेक्स फ़ंक्शन और ऑपरेटर हैं:
REGEXP_LIKE()
REGEXP
RLIKE
ये सभी मूल रूप से समकक्ष हैं, क्योंकि ऑपरेटर (दूसरे दो) दोनों फ़ंक्शन के समानार्थक शब्द हैं (पहला वाला)। किसी भी स्थिति में, आप नीचे कार्रवाई में तीनों के उदाहरण देख सकते हैं।
द REGEXP_LIKE()
समारोह
सबसे पहले, आइए फ़ंक्शन को देखें। यहां REGEXP_LIKE()
. का उपयोग करके रेगेक्स खोज चलाने का एक उदाहरण दिया गया है समारोह:
SELECT REGEXP_LIKE('Car', '^C') AS 'Match', REGEXP_LIKE('Bar', '^C') AS 'No Match';
परिणाम:
+-------+----------+ | Match | No Match | +-------+----------+ | 1 | 0 | +-------+----------+
पहली स्ट्रिंग मेल खाती है (क्योंकि यह C . से शुरू होती है ) तो परिणाम 1
. है . दूसरी स्ट्रिंग मेल नहीं खाती और इसलिए परिणाम 0
. है ।
हालांकि, यह फ़ंक्शन केवल 1
. को वापस करने से कहीं अधिक उपयोगी हो सकता है या 0
. उदाहरण के लिए, इसे 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 | +---------+--------------------------+
द REGEXP
संचालिका
REGEXP
. का उपयोग करके समान कार्य करने का तरीका यहां बताया गया है ऑपरेटर:
SELECT 'Car' REGEXP '^C' AS 'Match', 'Bar' REGEXP '^C' AS 'No Match';
परिणाम:
+-------+----------+ | Match | No Match | +-------+----------+ | 1 | 0 | +-------+----------+
और डेटाबेस उदाहरण:
SELECT AlbumId, AlbumName FROM Albums WHERE AlbumName REGEXP '^Power';
परिणाम:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
आप NOT REGEXP
. का भी उपयोग कर सकते हैं विपरीत परिणाम लौटाने के लिए।
RLIKE
संचालिका
और यहाँ यह RLIKE
. का उपयोग कर रहा है :
SELECT 'Car' RLIKE '^C' AS 'Match', 'Bar' RLIKE '^C' AS 'No Match';
परिणाम:
+-------+----------+ | Match | No Match | +-------+----------+ | 1 | 0 | +-------+----------+
और डेटाबेस उदाहरण:
SELECT AlbumId, AlbumName FROM Albums WHERE AlbumName RLIKE '^Power';
परिणाम:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
इस मामले में मैंने बस REGEXP
. की अदला-बदली की RLIKE
. के लिए और बाकी कोड को अकेला छोड़ दिया।
आप NOT RLIKE
. का भी उपयोग कर सकते हैं विपरीत परिणाम लौटाने के लिए।
अधिक REGEX फ़ंक्शन
MySQL में कुछ अन्य रेगेक्स फ़ंक्शन और ऑपरेटर भी शामिल हैं। इनमें से तीन नीचे सूचीबद्ध हैं। तकनीकी रूप से, आप पहले दो का उपयोग "पता लगाने" के लिए भी कर सकते हैं कि क्या एक स्ट्रिंग एक रेगेक्स पैटर्न से मेल खाती है (जिस स्थिति में, शायद इस लेख का शीर्षक "5 तरीके से पता लगाना चाहिए कि क्या एक स्ट्रिंग MySQL में एक नियमित अभिव्यक्ति से मेल खाती है" के बजाय " 3 तरीके…”)।
वैसे भी, यहां तीन और रेगेक्स फ़ंक्शन हैं:
- आप
REGEXP_INSTR()
का उपयोग कर सकते हैं रेगुलर एक्सप्रेशन पैटर्न से मेल खाने वाले सबस्ट्रिंग के शुरुआती इंडेक्स को वापस करने के लिए कार्य करता है। - द
REGEXP_SUBSTR()
फ़ंक्शन वह सबस्ट्रिंग देता है जो दिए गए रेगुलर एक्सप्रेशन पैटर्न से मेल खाता है। - और
REGEXP_REPLACE()
फ़ंक्शन एक स्ट्रिंग के भीतर सबस्ट्रिंग की घटनाओं को प्रतिस्थापित करता है जो दिए गए रेगुलर एक्सप्रेशन पैटर्न से मेल खाता है।