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

MySQL में LEFT() और INSTR() का उपयोग करके VARCHAR कॉलम से अंतिम स्ट्रिंग हटाना

MySQL में LEFT() और INSTR() के साथ स्पेस से पहले का भाग निकालना

जब कॉलम में "120 Gigabytes" जैसे मान हों और केवल संख्या भाग चाहिए, तो पहले स्पेस की स्थिति ढूंढकर उसके पहले का भाग निकाला जा सकता है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    Download VARCHAR(100)
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES('120 Gigabytes');
mysql> INSERT INTO DemoTable VALUES('190 Gigabytes');
mysql> INSERT INTO DemoTable VALUES('250 Gigabytes');
mysql> INSERT INTO DemoTable VALUES('1000 Gigabytes');

अपडेट से पहले डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----------------+
| Download       |
+----------------+
| 120 Gigabytes  |
| 190 Gigabytes  |
| 250 Gigabytes  |
| 1000 Gigabytes |
+----------------+

पहले स्पेस से पहले का भाग रखने के लिए UPDATE

mysql> UPDATE DemoTable 
SET Download = LEFT(Download, INSTR(Download, ' ') - 1);

आउटपुट: Query OK, 4 rows affected

अपडेट के बाद डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----------+
| Download |
+----------+
| 120      |
| 190      |
| 250      |
| 1000     |
+----------+

फ़ंक्शन व्याख्या

  • INSTR(Download, ' ') - पहले स्पेस की स्थिति लौटाता है (1-आधारित)
  • LEFT(Download, position - 1) - स्पेस से पहले के सभी वर्ण लौटाता है
  • -1 - स्पेस को शामिल न करने के लिए

वैकल्पिक तरीके


            
  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 रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग, संख्या और विशेष वर्ण वाले कॉलम मानों के साथ टेबल अपडेट करें

    समाधान REGEXP ऑपरेटर के साथ UPDATE का उपयोग करके पैटर्न मिलान करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2023 VALUES (7), (1), (AUS-100), (US-101); रेगुलर एक्सप्रेशन के साथ अपडेट केवल 1-2 अंकों वाले मानों के सामने Street जोड़ें: WHERE StreetNumber REGEXP ^[0-9]{1,2}$; परिणाम +--------------+

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

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