परिचय
जब किसी कॉलम में 'EMP9', 'EMP4' जैसे मान हों जहां एक निश्चित प्रीफिक्स ('EMP') के बाद संख्यात्मक भाग हो, तो RIGHT() और LENGTH() फंक्शन्स का उपयोग करके केवल संख्यात्मक भाग निकाला जा सकता है।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable1540 (
-> EmployeeCode VARCHAR(20)
-> );
Query OK, 0 rows affected (0.39 sec)
mysql> INSERT INTO DemoTable1540 VALUES('EMP9');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1540 VALUES('EMP4');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable1540 VALUES('EMP8');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable1540 VALUES('EMP6');
Query OK, 1 row affected (0.12 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable1540;
आउटपुट:
+--------------+
| EmployeeCode |
+--------------+
| EMP9 |
| EMP4 |
| EMP8 |
| EMP6 |
+--------------+
4 rows in set (0.00 sec)
स्ट्रिंग हटाकर केवल अंक प्राप्त करने की क्वेरी
mysql> SELECT RIGHT(EmployeeCode, LENGTH(EmployeeCode) - 3) AS onlyDigit
-> FROM DemoTable1540;
परिणाम
+-----------+
| onlyDigit |
+-----------+
| 9 |
| 4 |
| 8 |
| 6 |
+-----------+
4 rows in set (0.00 sec)
व्याख्या
LENGTH(EmployeeCode)- स्ट्रिंग की कुल लंबाई (उदाहरण: 'EMP9' = 4)LENGTH(EmployeeCode) - 3- प्रीफिक्स 'EMP' (3 अक्षर) घटाने के बाद शेष लंबाईRIGHT(EmployeeCode, ...)- दाईं ओर से उतने अक्षर निकालता है
सामान्यीकृत संस्करण
यदि प्रीफिक्स की लंबाई भिन्न हो सकती है:
SELECT RIGHT(EmployeeCode, LENGTH(EmployeeCode) - LENGTH('EMP')) AS onlyDigit
FROM DemoTable1540;
अन्य विकल्प
SUBSTRING(EmployeeCode, 4)- 4th पोजीशन से अंत तकREPLACE(EmployeeCode, 'EMP', '')- 'EMP' को खाली स्ट्रिंग से बदलेंSUBSTRING_INDEX(EmployeeCode, 'EMP', -1)- अंतिम 'EMP' के बाद का भाग
RIGHT() + LENGTH() दृष्टिकोण निश्चित-लंबाई प्रीफिक्स के लिए सरल और कुशल है।