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

MySQL क्वेरी: वर्गाकार कोष्ठक के बीच का टेक्स्ट कैसे हटाएं?

परिचय

कभी-कभी डेटा में वर्गाकार कोष्ठक [...] के अंदर अवांछित टेक्स्ट होता है जिसे हटाने की आवश्यकता होती है। MySQL में स्ट्रिंग फंक्शन्स का उपयोग करके इसे प्राप्त किया जा सकता है।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Name TEXT
    -> );
Query OK, 0 rows affected (0.47 sec)
mysql> INSERT INTO DemoTable VALUES('John [John] Smith');
Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO DemoTable VALUES('[Carol] Carol Taylor');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('David [Miller] Miller');
Query OK, 1 row affected (0.14 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------------------+
| Name                  |
+-----------------------+
| John [John] Smith     |
| [Carol] Carol Taylor  |
| David [Miller] Miller |
+-----------------------+
3 rows in set (0.00 sec)

वर्गाकार कोष्ठक के बीच का टेक्स्ट हटाने की क्वेरी

mysql> SELECT REPLACE(
    ->   Name,
    ->   SUBSTRING(
    ->     Name,
    ->     LOCATE('[', Name),
    ->     LENGTH(Name) - LOCATE(']', REVERSE(Name)) - LOCATE('[', Name) + 2
    ->   ),
    ->   ''
    -> ) AS Name
    -> FROM DemoTable;

परिणाम

+---------------+
| Name          |
+---------------+
| John Smith    |
| Carol Taylor  |
| David Miller  |
+---------------+
3 rows in set (0.03 sec)

क्वेरी का विश्लेषण

  • LOCATE('[', Name) - शुरुआती कोष्ठक की स्थिति खोजता है
  • LOCATE(']', REVERSE(Name)) - अंतिम कोष्ठक की स्थिति खोजता है (स्ट्रिंग को उलट कर)
  • SUBSTRING(...) - कोष्ठक सहित बीच का भाग निकालता है
  • REPLACE(..., '') - उस भाग को खाली स्ट्रिंग से बदल देता है

नोट

यह क्वेरी मानती है कि प्रत्येक मान में केवल एक जोड़ी कोष्ठक है। जटिल मामलों के लिए (नेस्टेड कोष्ठक, एकाधिक जोड़े) अधिक उन्नत पार्सिंग या एप्लिकेशन-लेवल प्रोसेसिंग की आवश्यकता हो सकती है।

  1. - MySQL में फील्ड नाम में स्पेस के बीच डैश (-) जोड़ना

    REPLACE() फंक्शन का उपयोग करके स्पेस को डैश से बदलना आप REPLACE() का उपयोग कर सकते हैं। पहले टेबल बनाएं: create table DemoTable1625 ( FullName varchar(20) ); Query OK, 0 rows affected (0.68 sec) रिकॉर्ड डालें: insert into DemoTable1625 values(Carol Taylor); Query OK, 1 row affected (0.14 sec) सभी

  1. - MySQL में दो शब्दों के बीच का स्पेस हटाना

    REPLACE() फ़ंक्शन से विशिष्ट स्पेस हटाना REPLACE(str, from_str, to_str) का उपयोग करके किसी विशिष्ट सबस्ट्रिंग (जैसे is ) को दूसरे सबस्ट्रिंग ( is) से बदलें। तालिका और डेटा (This is MySQL), (This is Java language), (This is MongoDB NoSQL database); स्पेस हटाने का UPDATE SET Title = REPLACE(Titl

  1. - MySQL में RTRIM() का उपयोग करके अनुगामी स्पेस कैसे हटाएं?

    MySQL में RTRIM() फ़ंक्शन का उपयोग करके स्ट्रिंग के दाएं छोर से स्पेस (अनुगामी स्पेस) हटाए जा सकते हैं। सिंटैक्स RTRIM(string) उदाहरण तालिका बनाएं और स्पेस के साथ डेटा डालें: mysql> CREATE TABLE DemoTable (FirstName VARCHAR(50)); mysql> INSERT INTO DemoTable VALUES (John ), (Chris ), ( David