MySQL में स्ट्रिंग फंक्शन के संयोजन से कोष्ठक में घिरे अनुगामी संख्याएं हटाना
"1stJohn (7)" जैसे स्ट्रिंग से अंतिम कोष्ठक और उसके अंदर की संख्या को हटाने के लिए REVERSE, LOCATE, SUBSTRING, TRIM को मिलाकर उपयोग किया जा सकता है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
Name VARCHAR(100)
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable VALUES('1stJohn');
mysql> INSERT INTO DemoTable VALUES('1stJohn (7)');
mysql> INSERT INTO DemoTable VALUES('2ndSam');
mysql> INSERT INTO DemoTable VALUES('2ndSam (4)');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------+ | Name | +-------------+ | 1stJohn | | 1stJohn (7) | | 2ndSam | | 2ndSam (4) | +-------------+
अनुगामी कोष्ठक संख्या हटाने के लिए क्वेरी
mysql> SELECT TRIM(SUBSTRING(Name, 1,
(CHAR_LENGTH(Name) - LOCATE('(', REVERSE(Name)))))
AS RemovingTrailingNumbers
FROM DemoTable;
आउटपुट:
+-------------------------+ | RemovingTrailingNumbers | +-------------------------+ | 1stJohn | | 1stJohn | | 2ndSam | | 2ndSam | +-------------------------+
चरण-दर-चरण व्याख्या
REVERSE(Name)- स्ट्रिंग उलट देता है: "1stJohn (7)" → "7) nhoJts1"LOCATE('(', REVERSE(Name))- उलटी स्ट्रिंग में '(' की स्थिति (यहां 2)CHAR_LENGTH(Name) - LOCATE(...)- मूल स्ट्रिंग में '(' की स्थिति से पहले की लंबाईSUBSTRING(Name, 1, length)- शुरुआत से '(' से पहले तक निकालता हैTRIM()- किसी भी अनुगामी स्पेस को हटाता है
सरल विकल्प (यदि फॉर्मेट निश्चित है)