MySQL - Stored Function - Custom Repeat Function With Placeholder

This MySQL stored function mimics the behavior of the built-in MySQL REPEAT function. However it, allows you to use a placeholder in the repeat string, which is replaced internally with the current repeat index.

X_REPEAT Function

  1. SELECT X_REPEAT('Loop index: {@i} ', 3)  
  2.  
  3. # Prints: Loop index: 1 Loop index: 2 Loop index: 3 

X_REPEAT Function

  1. DELIMITER $$  
  2.  
  3. CREATE FUNCTION X_REPEAT(str LONGTEXT, count INT)  
  4.     RETURNS LONGTEXT  
  5.          BEGIN  
  6.               SET @returnStr = '';  
  7.               SET @i = 0;  
  8.  
  9.               WHILE (@i < count) DO  
  10.                    BEGIN  
  11.                         SET @returnStr = CONCAT(@returnStr, REPLACE(str, '{@i}', (@i+1)));  
  12.                         SET @i = @i +1;  
  13.                    END;  
  14.               END WHILE;  
  15.               RETURN @returnStr;  
  16.          END  
  17.  
  18. $$  
  19.  
  20. DELIMITER ; 

No comments:

Post a Comment