समाधान
आप LENGTH() फंक्शन के साथ CASE स्टेटमेंट का उपयोग करके टेक्स्ट को ट्रंकेट कर सकते हैं और एलिप्सिस (या कोई कस्टम टेक्स्ट) जोड़ सकते हैं।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE TruncateText (
Id INT NOT NULL AUTO_INCREMENT,
Number LONGTEXT,
PRIMARY KEY(Id)
);
mysql> INSERT INTO TruncateText(Number) VALUES('64575868667687');
mysql> INSERT INTO TruncateText(Number) VALUES('7654332');
mysql> INSERT INTO TruncateText(Number) VALUES('25434656');
mysql> INSERT INTO TruncateText(Number) VALUES('6457586');
mysql> INSERT INTO TruncateText(Number) VALUES('958567686868675757574');
mysql> INSERT INTO TruncateText(Number) VALUES('374785868968787');
mysql> INSERT INTO TruncateText(Number) VALUES('58969678685858585858585858585');
क्वेरी: 7 अंकों से अधिक होने पर ट्रंकेट करें
mysql> SELECT *,
CASE
WHEN LENGTH(Number) > 7
THEN CONCAT(SUBSTRING(Number, 1, 7), '99999999')
ELSE Number
END AS AddNumber
FROM TruncateText;
आउटपुट
+----+-------------------------------+-----------------+ | Id | Number | AddNumber | +----+-------------------------------+-----------------+ | 1 | 64575868667687 | 645758699999999 | | 2 | 7654332 | 7654332 | | 3 | 25434656 | 254346599999999 | | 4 | 6457586 | 6457586 | | 5 | 958567686868675757574 | 958567699999999 | | 6 | 374785868968787 | 374785899999999 | | 7 | 58969678685858585858585858585 | 589696799999999 | +----+-------------------------------+-----------------+
व्याख्या
- यदि संख्या की लंबाई 7 से अधिक है, तो पहले 7 अंक रखें और
99999999जोड़ दें। - यदि लंबाई 7 या उससे कम है, तो मूल मान अपरिवर्तित रहता है।
- आप
'99999999'की जगह'...'या कोई अन्य एलिप्सिस स्ट्रिंग उपयोग कर सकते हैं।