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

MySQL में अंतिम कॉमा के बाद के सभी कैरेक्टर कैसे हटाएं?

MySQL में स्ट्रिंग से **अंतिम कॉमा (,) के बाद के सभी कैरेक्टर** हटाने के लिए SUBSTRING_INDEX() के साथ LENGTH() और REPLACE() का उपयोग करके कॉमा की संख्या गिनें।

सिंटैक्स

UPDATE yourTableName 
SET yourColumnName = SUBSTRING_INDEX(
    yourColumnName, 
    ',', 
    LENGTH(yourColumnName) - LENGTH(REPLACE(yourColumnName, ',', ''))
);

तर्क समझें

  • LENGTH(col) - LENGTH(REPLACE(col, ',', '')) = कॉमा की कुल संख्या
  • SUBSTRING_INDEX(str, delim, count) - डेलिमीटर के count-वें occurrence से पहले का भाग लौटाता है
  • यदि 4 कॉमा हैं, तो 5वां भाग चाहिए, इसलिए count = कॉमा की संख्या

उदाहरण के साथ समझें

टेबल बनाएं:

CREATE TABLE RemoveAllCharacters (
    Id INT NOT NULL AUTO_INCREMENT,
    FullInfo VARCHAR(200),
    PRIMARY KEY(Id)
);

विभिन्न संख्या में कॉमा वाले रिकॉर्ड डालें:

INSERT INTO RemoveAllCharacters(FullInfo) VALUES('John,Smith,23,98,4565886');
INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Carol,Taylor,26,91');
INSERT INTO RemoveAllCharacters(FullInfo) VALUES('David,Miller,21');
INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Robert,Jones,22,97');
INSERT INTO RemoveAllCharacters(FullInfo) VALUES('Sam,Williams,27,88,456788,97877');

सभी रिकॉर्ड देखें:

SELECT * FROM RemoveAllCharacters;

आउटपुट:

+----+---------------------------------+
| Id | FullInfo                        |
+----+---------------------------------+
| 1  | John,Smith,23,98,4565886        |
| 2  | Carol,Taylor,26,91              |
| 3  | David,Miller,21                 |
| 4  | Robert,Jones,22,97              |
| 5  | Sam,Williams,27,88,456788,97877 |
+----+---------------------------------+

अंतिम कॉमा के बाद के कैरेक्टर हटाने का क्वेरी

UPDATE RemoveAllCharacters 
SET FullInfo = SUBSTRING_INDEX(
    FullInfo, 
    ',', 
    LENGTH(FullInfo) - LENGTH(REPLACE(FullInfo, ',', ''))
);

परिणाम: Query OK, 5 rows affected

अपडेट के बाद रिकॉर्ड जांचें

SELECT * FROM RemoveAllCharacters;

आउटपुट (अंतिम कॉमा और उसके बाद का भाग हटा दिया गया):

+----+---------------------------+
| Id | FullInfo                  |
+----+---------------------------+
| 1  | John,Smith,23,98          |
| 2  | Carol,Taylor,26           |
| 3  | David,Miller              |
| 4  | Robert,Jones,22           |
| 5  | Sam,Williams,27,88,456788 |
+----+---------------------------+

व्याख्या प्रति पंक्ति

मूलकॉमा की संख्यापरिणाम
John,Smith,23,98,45658864John,Smith,23,98 (पहले 4 भाग)
Carol,Taylor,26,913Carol,Taylor,26 (पहले 3 भाग)
David,Miller,212David,Miller (पहले 2 भाग)
Robert,Jones,22,973Robert,Jones,22 (पहले 3 भाग)
Sam,Williams,27,88,456788,978775Sam,Williams,27,88,456788 (पहले 5 भाग)

नोट

  • यदि स्ट्रिंग में कोई कॉमा नहीं है, तो SUBSTRING_INDEX पूरी स्ट्रिंग लौटाता है
  • यह तरीका डायनामिक रूप से काम करता है - कॉमा की संख्या गिनने की आवश्यकता नहीं
  • बड़े डेटासेट पर प्रदर्शन के लिए इंडेक्स पर विचार करें
  1. - MySQL में SUBSTRING_INDEX से हाइफ़न से पहले का टेक्स्ट प्राप्त करें

    SUBSTRING_INDEX(str, delim, count) फ़ंक्शन स्ट्रिंग को डिलीमीटर से विभाजित करके निर्दिष्ट भाग लौटाता है। धनात्मक count बाएं से, ऋणात्मक दाएं से गिनता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1857 (Name VARCHAR(50)); डेटा डालें mysql> INSERT INTO DemoTable1857 VALUES(John-Smith); mysql>

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

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

  1. - Java में String से सभी गैर-वर्णमाला वर्ण कैसे हटाएं?

    रेगेक्स \\W+ (गैर-शब्द वर्ण) का उपयोग करके स्ट्रिंग को विभाजित करें, फिर टोकन को जोड़ें।उदाहरणimport java.util.Scanner; public class RemoveNonAlpha { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println(Enter a string: ); Strin