MySQL - Stored Function - Uppercase First Character In All Words

This MySQL stored function converts the first character in all words found in a sentence to uppercase.
  1. DELIMITER $$  
  2.   
  3. CREATE FUNCTION uc_words(str LONGTEXT)     
  4.     RETURNS LONGTEXT     
  5.     BEGIN     
  6.         DECLARE returnStr LONGTEXT DEFAULT '';     
  7.         DECLARE len INT DEFAULT 0;     
  8.         DECLARE i INT DEFAULT 1;     
  9.         DECLARE ch CHAR(1);     
  10.         DECLARE m bool DEFAULT true;     
  11.              
  12.         SET len = LENGTH(str) + 1;     
  13.       
  14.         WHILE (i < len) DO     
  15.             BEGIN     
  16.                 SET ch = SUBSTRING(str, i, 1);     
  17.                 IF m = true THEN     
  18.                     BEGIN     
  19.                         SET returnStr = CONCAT(returnStr, UCASE(ch));     
  20.                         SET m = FALSE;     
  21.                     END;     
  22.                 ELSEIF ch = ' ' THEN     
  23.                     BEGIN     
  24.                         SET returnStr = CONCAT(returnStr, ' ');     
  25.                         SET m = TRUE;     
  26.                     END;     
  27.     
  28.                 ELSE     
  29.                     BEGIN     
  30.                         SET returnStr = CONCAT(returnStr, ch);     
  31.                     END;     
  32.                 END IF;     
  33.     
  34.                 SET i = i+1;     
  35.             END;     
  36.         END WHILE;     
  37.         RETURN returnStr;     
  38.     END  
  39.   
  40. $$  
  41.   
  42. DELIMITER ;  

No comments:

Post a Comment