Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL क्वेरी: EMP1, EMP2, EMP3 जैसे मानों वाले कॉलम से स्ट्रिंग हटाएं

परिचय

जब किसी कॉलम में '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() दृष्टिकोण निश्चित-लंबाई प्रीफिक्स के लिए सरल और कुशल है।

  1. - MySQL में स्ट्रिंग कॉलम (स्ट्रिंग, संख्या, विशेष वर्ण) से विशिष्ट रिकॉर्ड प्राप्त करें

    CAST और SUBSTRING से संख्यात्मक भाग अनुसार क्रमबद्ध करें John_12, Chris_101 जैसे स्ट्रिंग कॉलम से संख्यात्मक भाग निकालकर क्रमबद्ध करें और विशिष्ट रिकॉर्ड प्राप्त करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20

  1. - एकल MySQL क्वेरी में एक कॉलम में एकाधिक मान कैसे डालें?

    सिंटैक्स एक कॉलम में एकाधिक मान डालने के लिए, निम्नलिखित सिंटैक्स का उपयोग करें: INSERT INTO yourTableName VALUES (yourValue1), (yourValue2), ... (yourValueN); उदाहरण सबसे पहले एक टेबल बनाते हैं: ); अब INSERT कमांड का उपयोग करके रिकॉर्ड डालें: INSERT INTO DemoTable2022 VALUES (Computer Science)

  1. - MySQL में VARCHAR स्ट्रिंग से हाइफ़न के बाद की संख्याओं को कैसे हटाएं

    समाधान SUBSTRING_INDEX() फंक्शन का उपयोग करके हाइफ़न से पहले का भाग प्राप्त करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2040 VALUES (John-232), (Carol-901), (David-987); अपडेट क्वेरी UPDATE DemoTable2040 SET StudentCode = SUBSTRING_INDEX(StudentCode, -, 1); परिणाम +-------------+ | StudentCod