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,4565886 | 4 | John,Smith,23,98 (पहले 4 भाग) |
| Carol,Taylor,26,91 | 3 | Carol,Taylor,26 (पहले 3 भाग) |
| David,Miller,21 | 2 | David,Miller (पहले 2 भाग) |
| Robert,Jones,22,97 | 3 | Robert,Jones,22 (पहले 3 भाग) |
| Sam,Williams,27,88,456788,97877 | 5 | Sam,Williams,27,88,456788 (पहले 5 भाग) |
नोट
- यदि स्ट्रिंग में कोई कॉमा नहीं है, तो
SUBSTRING_INDEXपूरी स्ट्रिंग लौटाता है - यह तरीका डायनामिक रूप से काम करता है - कॉमा की संख्या गिनने की आवश्यकता नहीं
- बड़े डेटासेट पर प्रदर्शन के लिए इंडेक्स पर विचार करें