DELIMITER $$ USE `test`$$ DROP FUNCTION IF EXISTS `func_get_split_string`$$ CREATE DEFINER=`root`@`localhost` FUNCTION `func_get_split_string`(f_string VARCHAR(1000),f_delimiter VARCHAR(5),f_order INT) RETURNS VARCHAR(255) CHARSET utf8 BEGIN DECLARE result VARCHAR(255) DEFAULT ''; SET result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(f_string,f_delimiter,f_order)),f_delimiter,1)); RETURN result; END$$ DELIMITER ; DELIMITER $$ USE `test`$$ DROP FUNCTION IF EXISTS `countOrder`$$ CREATE DEFINER=`root`@`localhost` FUNCTION `countOrder`(f_string VARCHAR(1000),f_delimiter VARCHAR(5)) RETURNS VARCHAR(255) CHARSET utf8 BEGIN DECLARE result VARCHAR(255) DEFAULT ''; DECLARE lastresult VARCHAR(255) DEFAULT ''; DECLARE f_order INT DEFAULT 1; SET result=func_get_split_string(f_string,f_delimiter,f_order); WHILE TRIM(result)!='' DO SET lastresult=CONCAT_WS(' ',lastresult,NULL,result); SET f_order=f_order+1; SET result=func_get_split_string(f_string,f_delimiter,f_order); END WHILE; RETURN lastresult; END$$ DELIMITER ;