কম্পিউটার টিউটোরিয়াল

MySQL-এ এলিপসিস (•••) সহ টেক্সট ট্রানকেট করা

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 যুক্ত করে ট্রানকেট করা হয়েছে।

দ্রষ্টব্য: এই পদ্ধতিতে আসল ডেটা পরিবর্তন হয় না, কোয়েরি রান করার সময় কেবল আউটপুটে ট্রানকেটেড মান দেখানো হয়। আসল টেবিলের ডেটা অপরিবর্তিত থাকে।

  1. MySQL REPLACE() ফাংশন ব্যবহার করে টেক্সট কলাম আপডেট করা

  2. Java-এ JDBC ResultSetMetaData ব্যবহার করে MySQL টেবিলের কলাম সংখ্যা বের করা

  3. MySQL-এ LIKE অপারেটর ব্যবহার করে কমা-বিচ্ছিন্ন স্ট্রিং থেকে পূর্ণসংখ্যা খুঁজুন

  4. MySQL-এ নির্দিষ্ট প্যাটার্নের (John-*) ভিন্ন আইটেমের সংখ্যা গণনা করা