परिचय
MySQL में LEFT() और LENGTH() फंक्शन्स का उपयोग करके स्ट्रिंग के अंतिम N अक्षर हटाए जा सकते हैं। यह उदाहरण अंतिम 2 अक्षर हटाता है (शब्द नहीं, अक्षर)।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(10)
-> );
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO DemoTable VALUES('John');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Chris');
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable VALUES('Robert');
Query OK, 1 row affected (0.11 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------+
| Name |
+--------+
| John |
| Chris |
| Robert |
+--------+
3 rows in set (0.00 sec)
अंतिम 2 अक्षर हटाने की क्वेरी
mysql> SELECT LEFT(Name, LENGTH(Name) - 2) FROM DemoTable;
परिणाम
+---------------------------+
| LEFT(Name, LENGTH(Name)-2) |
+---------------------------+
| Jo |
| Chr |
| Robe |
+---------------------------+
3 rows in set (0.02 sec)
व्याख्या
LENGTH(Name)- स्ट्रिंग लंबाईLENGTH(Name) - 2- अंतिम 2 अक्षर छोड़कर लंबाईLEFT(Name, ...)- बाईं ओर से उतने अक्षर निकालता है
शीर्षक सुधार: "शब्द" बनाम "अक्षर"
मूल शीर्षक "अंतिम दो शब्द" कहता है लेकिन क्वेरी अंतिम 2 अक्षर हटाती है। वास्तविक शब्द हटाने के लिए:
अंतिम 2 शब्द हटाने (स्पेस से अलग)
SELECT
CASE
WHEN LENGTH(Name) - LENGTH(REPLACE(Name, ' ', '')) < 2 THEN Name
ELSE TRIM(SUBSTRING_INDEX(Name, ' ', LENGTH(Name) - LENGTH(REPLACE(Name, ' ', '')) - 1))
END AS trimmed_name
FROM DemoTable;
सरल: अंतिम N अक्षर हटाएं
-- अंतिम 3 अक्षर
SELECT LEFT(Name, LENGTH(Name) - 3) FROM DemoTable;
-- SUBSTRING विकल्प
SELECT SUBSTRING(Name, 1, LENGTH(Name) - 2) FROM DemoTable;
नोट
यदि स्ट्रिंग लंबाई < 2 है, तो LENGTH - 2 ऋणात्मक होगा और LEFT खाली स्ट्रिंग लौटाएगा। GREATEST(0, LENGTH(Name) - 2) उपयोग करके सुरक्षित बनाएं।