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

MySQL 8.0 REGEXP_REPLACE से संख्या हटाकर केवल स्ट्रिंग और स्लैश रखें

MySQL 8.0 में REGEXP_REPLACE() फ़ंक्शन का उपयोग करके स्ट्रिंग से संख्याओं को हटाकर केवल अक्षर और स्लैश (/) रख सकते हैं।

सिंटैक्स

REGEXP_REPLACE(स्ट्रिंग, पैटर्न, प्रतिस्थापन)

उदाहरण

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable1595 (StudentCode VARCHAR(50));

2. डेटा डालें

mysql> INSERT INTO DemoTable1595 VALUES('200 John');
mysql> INSERT INTO DemoTable1595 VALUES('101 Carol/400 Taylor');
mysql> INSERT INTO DemoTable1595 VALUES('101 302 405 Sam/9870');

3. REGEXP_REPLACE क्वेरी

mysql> SELECT REGEXP_REPLACE(StudentCode, ' *[0-9]+([.,][0-9]+)?(/[0-9]+([.,][0-9]+)?)? *', '')
    -> AS `GetOnlyStringand/` FROM DemoTable1595;

4. परिणाम

+-------------------+
| GetOnlyStringand/ |
+-------------------+
| John              |
| Carol/Taylor      |
| Sam/              |
+-------------------+

पैटर्न विश्लेषण

' *[0-9]+([.,][0-9]+)?(/[0-9]+([.,][0-9]+)?)? *'
भागअर्थ
*वैकल्पिक अग्रणी स्पेस
[0-9]+एक या अधिक अंक
([.,][0-9]+)?वैकल्पिक दशमलव भाग
(/[0-9]+([.,][0-9]+)?)?वैकल्पिक स्लैश+संख्या
*वैकल्पिक अनुगामी स्पेस

सरल पैटर्न (केवल पूर्णांक हटाने के लिए)

REGEXP_REPLACE(StudentCode, '[0-9]+', '')

परिणाम: ' John', ' Carol/ Taylor', ' Sam/' (स्पेस बचे रहेंगे)

संस्करण आवश्यकता

  • REGEXP_REPLACE MySQL 8.0.4+ में उपलब्ध
  • पुराने संस्करण: एप्लिकेशन लेवल पर प्रोसेस करें या UDF उपयोग करें

संबंधित फ़ंक्शन (MySQL 8.0+)

  • REGEXP_LIKE(expr, pat) - बूलियन मिलान
  • REGEXP_SUBSTR(expr, pat) - मिला हुआ भाग निकालें
  • REGEXP_INSTR(expr, pat) - मिलान स्थिति

उपयोग के मामले

  • डेटा सफाई: मिश्रित कोड से वर्णनात्मक भाग निकालना
  • ETL परिवर्तन
  • रिपोर्टिंग के लिए डेटा सामान्यीकरण
  1. - MySQL REGEXP: केवल स्ट्रिंग या स्ट्रिंग+नंबर वाले रिकॉर्ड दिखाएँ, केवल नंबर वाले नहीं

    REGEXP पैटर्न कम से कम एक अक्षर (a-z या A-Z) वाले रिकॉर्ड के लिए: select yourColumnName from yourTableName where yourColumnName REGEXP [a-zA-Z]; उदाहरण insert into demo41 values(John Smith34), (John Smith), (9234John Smith), (john smith), (98775); क्वेरी और परिणाम select name from demo41 where

  1. - MySQL REGEXP: विशिष्ट संख्या से शुरू होने वाले स्ट्रिंग+नंबर रिकॉर्ड प्राप्त करें

    REGEXP पैटर्न Select yourColumnName1, yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue]; उदाहरण: John से शुरू और फिर 5 या 6 insert into demo45(value) values(John500), (John1500), (John5500), (John6500), (John8600); क्वेरी: ^John[56] select id,val

  1. - MySQL में AES_ENCRYPT() और AES_DECRYPT() से स्ट्रिंग एन्क्रिप्ट और डिक्रिप्ट करें

    सिंटैक्स insert into yourTableName values(AES_ENCRYPT(yourValue, yourSecretKey)); select cast(AES_DECRYPT(yourColumnName, yourSecretKey) as char) from yourTableName; उदाहरण insert into demo63 values(AES_ENCRYPT(John,PASS)), (AES_ENCRYPT(David,PASS)), (AES_ENCRYPT(123456,PASS)); एन्क्रिप्टेड डेटा