Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में REGEXP से रेगुलर एक्सप्रेशन पैटर्न मिलान क्वेरी

MySQL का REGEXP ऑपरेटर रेगुलर एक्सप्रेशन पैटर्न मिलान करके पंक्तियों को फ़िल्टर करता है, जो LIKE से अधिक शक्तिशाली है।

सिंटैक्स

SELECT * FROM टेबल_नाम WHERE कॉलम_नाम REGEXP 'पैटर्न';

उदाहरण: अंडरस्कोर के बाद अंक वाले कोड ढूंढें

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1573 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentCode VARCHAR(20)
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable1573(StudentCode) VALUES('STU_774');
mysql> INSERT INTO DemoTable1573(StudentCode) VALUES('909_Sam');
mysql> INSERT INTO DemoTable1573(StudentCode) VALUES('3_Carol_455');
mysql> INSERT INTO DemoTable1573(StudentCode) VALUES('David_903');

3. पैटर्न: '_' के बाद अंक (\\d)

mysql> SELECT * FROM DemoTable1573
    -> WHERE StudentCode REGEXP '_[0-9]';

4. परिणाम

+-----------+-------------+
| StudentId | StudentCode |
+-----------+-------------+
| 2         | 909_Sam     |
| 3         | 3_Carol_455 |
+-----------+-------------+

पैटर्न व्याख्या

  • _ - शाब्दिक अंडरस्कोर
  • [0-9] - कोई भी अंक (0-9)
  • मिलान: '909_Sam' (_S नहीं, लेकिन _ के बाद अंक नहीं... वास्तव में पैटर्न '_[0-9]' का अर्थ है अंडरस्कोर के तुरंत बाद अंक)

नोट: मूल उदाहरण में पैटर्न '\\land[0-9]' प्रतीत होता है जो टाइपो हो सकता है। सही पैटर्न '_[0-9]' है।

सामान्य REGEXP पैटर्न

पैटर्नअर्थ
^abcabc से शुरू
abc$abc पर समाप्त
[abc]a, b, या c में से कोई
[^abc]a, b, c के अलावा कोई
[0-9]कोई अंक
[a-z]कोई छोटा अक्षर
.कोई भी एकल वर्ण
*शून्य या अधिक
+एक या अधिक
?शून्य या एक

MySQL 8.0+ उन्नत फ़ंक्शन

  • REGEXP_LIKE() - बूलियन परिणाम
  • REGEXP_SUBSTR() - मिला हुआ उपस्ट्रिंग निकालें
  • REGEXP_REPLACE() - पैटर्न बदलें
  • REGEXP_INSTR() - मिलान स्थिति ढूंढें

प्रदर्शन नोट

REGEXP इंडेक्स का उपयोग नहीं कर सकता (पूर्ण स्कैन)। बड़े टेबल पर सावधानी से उपयोग करें।

  1. - MySQL में UNION का उपयोग करके दो टेबल से एक क्वेरी में चयन करें

    UNION ऑपरेटर का उपयोग करके दो टेबल के परिणाम सेट को संयोजित करें (डुप्लिकेट हटाता है)। क्रमबद्ध करने के लिए ORDER BY जोड़ें। पहली टेबल बनाना और डेटा डालना CREATE TABLE DemoTable1 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(20) ); Query OK, 0 rows affected (0.90 sec) I

  1. - MySQL में शर्त के साथ ORDER BY और SELECT कैसे करें?

    कंडीशनल ORDER BY: जीरो वैल्यू अंत में किसी कॉलम को सॉर्ट करते समय खास मान (जैसे 0) को अंत में रखने और बाकी को नॉर्मल ऑर्डर में रखने के लिए बूलियन एक्सप्रेशन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName ORDER BY yourColumnName = 0, yourColumnName; टेबल बनाना और डेटा इन्सर्ट करना CREATE TABL

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड