LENGTH() ফাংশন এবং CASE স্টেটমেন্ট ব্যবহার করে টেক্সট এলিপসিস (•••) সহ ট্রানকেট করা যায়। যদি লেন্থ ৭-এর চেয়ে বড় হয়, তবে টেক্সট ট্রানকেট করে একটি সংখ্যা যুক্ত করা হবে, অন্যথায় সংখ্যাটি যেন আছে তেনই প্রিন্ট হবে।
এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table TruncateText
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Number longtext,
-> PRIMARY KEY(Id)
-> ); Query OK, 0 rows affected (0.66 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:
mysql> insert into TruncateText(Number) values('64575868667687'); Query OK, 1 row affected (0.11 sec) mysql> insert into TruncateText(Number) values('7654332'); Query OK, 1 row affected (0.17 sec) mysql> insert into TruncateText(Number) values('25434656'); Query OK, 1 row affected (0.19 sec) mysql> insert into TruncateText(Number) values('6457586'); Query OK, 1 row affected (0.17 sec) mysql> insert into TruncateText(Number) values('958567686868675757574'); Query OK, 1 row affected (0.13 sec) mysql> insert into TruncateText(Number) values('374785868968787'); Query OK, 1 row affected (0.21 sec) mysql> insert into TruncateText(Number) values('58969678685858585858585858585'); Query OK, 1 row affected (0.14 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:
mysql> select *from TruncateText;
আউটপুট নিচে দেওয়া হলো:
+----+-------------------------------+ | Id | Number | +----+-------------------------------+ | 1 | 64575868667687 | | 2 | 7654332 | | 3 | 25434656 | | 4 | 6457586 | | 5 | 958567686868675757574 | | 6 | 374785868968787 | | 7 | 58969678685858585858585858585 | +----+-------------------------------+ 7 rows in set (0.00 sec)
উপরের আউটপুটে কিছু সংখ্যার লেন্থ ৭-এর চেয়ে বড়। যদি লেন্থ ৭-এর চেয়ে বড় হয়, তবে ৭তম ডিজিটের পর একটি সংখ্যা (99999999) যুক্ত করতে হবে। যদি লেন্থ ৭ বা তার সমান হয়, তবে কোনো সংখ্যা যুক্ত করার প্রয়োজন নেই।
কোয়েরিটি নিচে দেওয়া হলো:
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 rows in set (0.00 sec)
উপরের স্যাম্পল আউটপুটে দেখা যাচ্ছে, যেসব সংখ্যার লেন্থ ৭-এর চেয়ে বড়, সেসবকে ৭তম ডিজিটের পর 99999999 যুক্ত করে ট্রানকেট করা হয়েছে।
দ্রষ্টব্য: এই পদ্ধতিতে আসল ডেটা পরিবর্তন হয় না, কোয়েরি রান করার সময় কেবল আউটপুটে ট্রানকেটেড মান দেখানো হয়। আসল টেবিলের ডেটা অপরিবর্তিত থাকে।