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

MySQL-এ ফাংশন লিখে স্ট্রিং থেকে ডবল বা অধিক স্পেস সরানো

MySQL-এ বিল্ট-ইন ফাংশন নেই যা একের অধিক স্পেস একে কমায়। কিন্তু একটি কাস্টম ফাংশন লিখে এটি করা যায়।

ফাংশন তৈরির সিনট্যাক্স

DELIMITER // 
CREATE FUNCTION yourFunctionName(parameter1, ...) RETURNS datatype 
BEGIN 
  -- your statements 
END; // 
DELIMITER ;

উদাহরণ: function_DeleteSpaces

mysql> DELIMITER // 
mysql> CREATE FUNCTION function_DeleteSpaces(value VARCHAR(200)) RETURNS VARCHAR(200) 
    -> BEGIN 
    ->   SET value = TRIM(value); 
    ->   WHILE INSTR(value, '  ') > 0 DO 
    ->     SET value = REPLACE(value, '  ', ' '); 
    ->   END WHILE; 
    ->   RETURN value; 
    -> END; // 
Query OK, 0 rows affected (0.20 sec) 
mysql> DELIMITER ;
কার্যকারিতা: ১) TRIM() দিয়ে শুরু ও শেষ স্পেস সরানো। ২) WHILE লুপে ডবল স্পেস (' ') খুঁজে পেলে সিঙ্গেল স্পেস (' ') দিয়ে রিপ্লেস করা, যতক্ষণ না ডবল স্পেস থাকে।

ফাংশন কল করুন

mysql> SELECT function_DeleteSpaces(' John Smith ');

ফলাফল

+--------------------------------------------------+
| function_DeleteSpaces(' John Smith ')              |
+--------------------------------------------------+
| John Smith                                         |
+--------------------------------------------------+

আরেক উদাহরণ (বিচে একাধিক স্পেস)

mysql> SELECT function_DeleteSpaces(' John   Smith 123 ');

ফলাফল

+---------------------------------------------------------+
| function_DeleteSpaces(' John   Smith 123 ')              |
+---------------------------------------------------------+
| John Smith 123                                          |
+---------------------------------------------------------+
আধুনিক বিকল্প (MySQL 8.0+): REGEXP_REPLACE(column, '[ ]{2,}', ' ') ব্যবহার করলে এক লাইনে হয়ে যায়।
  1. MySQL-এ VARCHAR নম্বর স্ট্রিং থেকে সর্বোচ্চ মান বের করা

  2. MySQL-এ CAST() ব্যবহার করে VARCHAR কলাম থেকে নির্দিষ্ট সংখ্যার চেয়ে বড় মান বের করা

  3. MySQL-এ SUBSTRING_INDEX() ব্যবহার করে স্ট্রিং থেকে তারিখ এক্সট্র্যাক্ট করুন

  4. MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল ব্যবহার করে এক কলাম থেকে অন্য কলামের মান ডিরাইভ করা (রানিং টোটাল)