Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में स्ट्रिंग से डबल या अधिक स्पेस कैसे हटाएं?


स्ट्रिंग से डबल या अधिक स्पेस हटाने के लिए एक कस्टम फ़ंक्शन बना सकते हैं।

फ़ंक्शन बनाने का सिंटैक्स

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 ;

फ़ंक्शन व्याख्या:

  1. TRIM(value) - शुरुआत और अंत के स्पेस हटाता है
  2. WHILE INSTR(value, ' ') > 0 - जब तक डबल स्पेस मिले
  3. REPLACE(value, ' ', ' ') - डबल स्पेस को सिंगल स्पेस से बदलें
  4. लूप तब तक चलता है जब तक सभी डबल स्पेस सिंगल न हो जाएं

फ़ंक्शन कॉल करें

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,}', ' ')।

  1. - MySQL में VARCHAR कॉलम से किसी विशेष मान से अधिक मान कैसे प्राप्त करें

    चूंकि जिस कॉलम से आप विशेष मान से अधिक मान प्राप्त करना चाहते हैं वह VARCHAR है, CAST() फ़ंक्शन का उपयोग करें। उदाहरण के लिए, varchar मानों वाले कॉलम से 999 से अधिक मान लाने के लिए। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable ( Value varchar(100) ); Query OK, 0 rows affected

  1. - MySQL में SUBSTRING_INDEX से स्ट्रिंग से दिनांक निकालें

    MySQL में SUBSTRING_INDEX() फ़ंक्शन का उपयोग करके स्ट्रिंग के अंतिम भाग से दिनांक निकाल सकते हैं जब दिनांक एक ज्ञात विभाजक के बाद आता है। सिंटैक्स SUBSTRING_INDEX(SUBSTRING_INDEX(स्ट्रिंग, विभाजक, -1), विभाजक, 1) उदाहरण: लेबल.दिनांक प्रारूप से दिनांक निकालना 1. टेबल बनाएं ); 2. डेटा डालें INSE

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल से एक कॉलम का मान दूसरे कॉलम से प्राप्त करें

    MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) का उपयोग करके पिछली पंक्ति के मान के आधार पर वर्तमान पंक्ति के लिए चल योग (क्यूमुलेटिव सम) या अन्य व्युत्पन्न मान की गणना कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1868 (Value INT); डेटा डालें mysql> INSERT INTO DemoTable1868 VALUES(10), (2