MySQL में REVERSE() और SUBSTR() फ़ंक्शन को संयोजित करके स्ट्रिंग के अंतिम N वर्ण हटाएं (पहले से अंतिम N से पहले तक का भाग रखें)।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> StudentId VARCHAR(100)
-> );
Query OK, 0 rows affected (0.58 sec)
mysql> INSERT INTO DemoTable VALUES('STU-090'), ('STU-123'), ('STU-678');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+-----------+ | StudentId | +-----------+ | STU-090 | | STU-123 | | STU-678 | +-----------+ 3 rows in set (0.00 sec)
अंतिम 3 वर्ण हटाने की क्वेरी (SELECT)
mysql> SELECT REVERSE(SUBSTR(REVERSE(StudentId), 4)) FROM DemoTable;
आउटपुट
+----------------------------------------+ | REVERSE(SUBSTR(REVERSE(StudentId), 4)) | +----------------------------------------+ | STU- | | STU- | | STU- | +----------------------------------------+ 3 rows in set (0.00 sec)
चरण-दर-चरण (STU-090 के लिए):
REVERSE('STU-090')→'090-UTS'SUBSTR(..., 4)→ 4थे वर्ण से अंत तक:'-UTS'(पहले 3 वर्ण '090' छोड़ता है)REVERSE('-UTS')→'STU-'
सरल विकल्प - LEFT() + LENGTH():
SELECT LEFT(StudentId, LENGTH(StudentId) - 3) FROM DemoTable;
या SUBSTRING(StudentId, 1, LENGTH(StudentId) - 3)।
स्थायी अपडेट के लिए:
UPDATE DemoTable SET StudentId = LEFT(StudentId, LENGTH(StudentId) - 3);
सावधानी: स्ट्रिंग लंबाई 3 से कम होने पर परिणाम खाली स्ट्रिंग या अप्रत्याशित हो सकता है। WHERE क्लॉज में WHERE LENGTH(StudentId) > 3 जोड़ें।