নন-আলফানিউমেরিক ক্যারেক্টার মুছে ফেলার কাস্টম ফাংশন
MySQL-এ বিল্ট-ইন ফাংশন নেই যা স্ট্রিং থেকে নন-আলফানিউমেরিক ক্যারেক্টার (যেমন @, !, #, &, (, ), ?, /) সরিয়ে দেয়। তাই একটি ইউজার-ডিফাইনড ফাংশন (UDF) তৈরি করতে হয়।
ফাংশন তৈরি করা
mysql> DELIMITER //
mysql> CREATE FUNCTION RemoveNonAlphaNumeric(s CHAR(255)) RETURNS CHAR(255) DETERMINISTIC
-> BEGIN
-> DECLARE var1, length SMALLINT DEFAULT 1;
-> DECLARE result CHAR(255) DEFAULT '';
-> DECLARE ch CHAR(1);
-> SET length = CHAR_LENGTH(s);
-> REPEAT
-> BEGIN
-> SET ch = MID(s, var1, 1);
-> IF ch REGEXP '[[:alnum:]]' THEN
-> SET result = CONCAT(result, ch);
-> END IF;
-> SET var1 = var1 + 1;
-> END;
-> UNTIL var1 > length END REPEAT;
-> RETURN result;
-> END //
Query OK, 0 rows affected (0.10 sec)
ফাংশন টেস্ট করা
mysql> DELIMITER ;
mysql> SELECT 'My Email id is test@123!', RemoveNonAlphaNumeric('My Email id is test@123!');
আউটপুট:
+--------------------------+---------------------------------------------------+
| My Email id is test@123! | RemoveNonAlphaNumeric('My Email id is test@123!') |
+--------------------------+---------------------------------------------------+
| My Email id is test@123! | MyEmailidistest123 |
+--------------------------+---------------------------------------------------+
1 row in set (0.15 sec)
ফলাফলে @ এবং ! চিহ্নগুলো সরিয়ে যাওয়া দেখা যাচ্ছে। এই ফাংশনটি আপনার ডেটাবেজে সংরক্ষিত থাকবে এবং যেকোনো সময় কল করা যাবে।