स्ट्रिंग से डबल या अधिक स्पेस हटाने के लिए एक कस्टम फ़ंक्शन बना सकते हैं।
फ़ंक्शन बनाने का सिंटैक्स
DELIMITER // CREATE FUNCTION yourFunctionName(parameter1, ... N) RETURNS datatype; BEGIN -- your statements. END; // DELIMITER ;
स्पेस हटाने वाला फ़ंक्शन बनाएं
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(value)- शुरुआत और अंत के स्पेस हटाता हैWHILE INSTR(value, ' ') > 0- जब तक डबल स्पेस मिलेREPLACE(value, ' ', ' ')- डबल स्पेस को सिंगल स्पेस से बदलें- लूप तब तक चलता है जब तक सभी डबल स्पेस सिंगल न हो जाएं
फ़ंक्शन कॉल करें
SELECT yourFunctionName();
उदाहरण 1
mysql> SELECT function_DeleteSpaces(' John Smith ');
आउटपुट
+--------------------------------------------------+
| function_DeleteSpaces(' John Smith ') |
+--------------------------------------------------+
| John Smith |
+--------------------------------------------------+
1 row in set (0.02 sec)
उदाहरण 2
mysql> SELECT function_DeleteSpaces(' John Smith 123 ');
आउटपुट
+---------------------------------------------------------+
| function_DeleteSpaces(' John Smith 123 ') |
+---------------------------------------------------------+
| John Smith 123 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
फ़ंक्शन अग्रणी/अंतिम स्पेस हटाता है और आंतरिक एकाधिक स्पेस को सिंगल स्पेस में बदल देता है।
नोट
MySQL 8.0+ में REGEXP_REPLACE() फ़ंक्शन उपलब्ध है जो इसे अधिक सरलता से कर सकता है: REGEXP_REPLACE(value, ' {2,}', ' ')।