Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save onare/57263b971d57663a5171 to your computer and use it in GitHub Desktop.
Save onare/57263b971d57663a5171 to your computer and use it in GitHub Desktop.
ALPHA and NUMERIC REGEXP_REPLACE MYSQL FUNCTION
USE `PRUEBA`;
DROP function IF EXISTS `alpha`;
DELIMITER $$
USE `PRUEBA`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `alpha`(
vStr CHAR(75)) RETURNS char(32) CHARSET latin1
BEGIN
DECLARE vInd, vLen SMALLINT DEFAULT 1;
DECLARE vReturn CHAR(32) DEFAULT '';
DECLARE vCharacter CHAR(1);
REPEAT
SET vLen = CHAR_LENGTH(vStr);
BEGIN
SET vCharacter = MID(vStr,vInd,1);
IF vCharacter REGEXP '[[:alpha:]]' THEN
SET vReturn=CONCAT(vReturn,vCharacter);
END IF;
SET vInd =vInd+1;
END;
UNTIL vInd > vLen END REPEAT;
RETURN vReturn;
END$$
DELIMITER ;
# Numeric
USE `PRUEBA`;
DROP function IF EXISTS `PRUEBA`.`num`;
DELIMITER $$
USE `PRUEBA`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `num`(
vStr CHAR(75)) RETURNS char(32) CHARSET latin1
BEGIN
DECLARE vInd, vLen SMALLINT DEFAULT 1;
DECLARE vReturn CHAR(32) DEFAULT '';
DECLARE vCharacter CHAR(1);
REPEAT
SET vLen = CHAR_LENGTH(vStr);
BEGIN
SET vCharacter = MID(vStr,vInd,1);
IF vCharacter REGEXP '[[:digit:]|[:punct:]]' THEN
SET vReturn=CONCAT(vReturn,vCharacter);
END IF;
SET vInd =vInd+1;
END;
UNTIL vInd > vLen END REPEAT;
RETURN vReturn;
END$$
DELIMITER ;
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment