SUBSTRING और LOCATE से पहला शब्द हटाना
किसी टेक्स्ट कॉलम से पहला शब्द (पहले स्पेस तक) हटाकर बाकी टेक्स्ट प्राप्त करने के लिए SUBSTRING() और LOCATE() फंक्शन का उपयोग करें।
सिंटैक्स
SELECT SUBSTRING(yourColumnName, LOCATE(' ', yourColumnName) + 1) AS anyAliasName
FROM yourTableName;
टेबल बनाना और डेटा इन्सर्ट करना
CREATE TABLE DemoTable (Title TEXT);
INSERT INTO DemoTable VALUES('Java in Depth');
INSERT INTO DemoTable VALUES('C++ is an object oriented programming language');
INSERT INTO DemoTable VALUES('MySQL is a relational database');
INSERT INTO DemoTable VALUES('Python with data structure');
मौजूदा डेटा
+------------------------------------------------+ | Title | +------------------------------------------------+ | Java in Depth | | C++ is an object oriented programming language | | MySQL is a relational database | | Python with data structure | +------------------------------------------------+
क्वेरी: पहला शब्द हटाना
SELECT SUBSTRING(Title, LOCATE(' ', Title) + 1) AS RemoveFirstWord
FROM DemoTable;
आउटपुट
+--------------------------------------------+ | RemoveFirstWord | +--------------------------------------------+ | in Depth | | is an object oriented programming language | | is a relational database | | with data structure | +--------------------------------------------+
कैसे काम करता है
LOCATE(' ', Title)- पहला स्पेस की पोजीशन ढूंढता है+ 1- स्पेस के अगले कैरेक्टर से शुरू करेंSUBSTRING(Title, position)- उस पोजीशन से अंत तक निकालता है
एज केस हैंडलिंग
अगर कोई स्पेस नहीं है (सिंगल वर्ड), तो LOCATE 0 लौटाता है और SUBSTRING पूरा स्ट्रिंग लौटा देता है। इसे रोकने के लिए:
SELECT CASE
WHEN LOCATE(' ', Title) > 0 THEN SUBSTRING(Title, LOCATE(' ', Title) + 1)
ELSE ''
END AS RemoveFirstWord FROM DemoTable;
वैकल्पिक: SUBSTRING_INDEX (MySQL 8.0+)
SELECT SUBSTRING_INDEX(Title, ' ', -1) -- केवल आखिरी शब्द -- या पहला शब्द हटाने के लिए जटिल लॉजिक की जरूरत
SUBSTRING_INDEX डिलीमीटर के आधार पर भाग निकालता है लेकिन पहला शब्द हटाने के लिए सीधा नहीं है।