【原】mysql5.6 split函数_字符串的分割

时间:2021-09-10 16:35:14
DROP FUNCTION IF EXISTS `getSplitName`$$   

CREATE FUNCTION `getSplitName`(f_string text,f_delimiter varchar(100)) RETURNS text

BEGIN
/*
对逗号进行分离的字符串,分割出'登陆名_用户名/部门名'中的_后部门字符串,以逗号拼接
例:"admin_管理员1,admin_管理员2,admin_管理员3,admin_管理员4,admin_管理员5"这种格式的字符串,调用func_get_name(str,"_")
可得到"管理员1,管理员2,管理员3,管理员4,管理员5"这样的字符串。
*/
#Routine body goes here...
DECLARE i int(11);
DECLARE total int(11);
DECLARE result text;
DECLARE resulttemp text;
SET i=1;
SET result = '';
set resulttemp = '' ;
set total = 1+(LENGTH(f_string)-LENGTH(replace(f_string,',',''))); IF(f_string is NULL or LENGTH(f_string)=0) THEN
RETURN '无内容';
ELSE
WHILE i<=total DO
set resulttemp = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(f_string,',',i)),',',1));
IF(LENGTH(result)=0) THEN
set result = CONCAT(result,SUBSTRING_INDEX(resulttemp,f_delimiter,-1));
ELSE
set result = CONCAT(CONCAT(result,','),SUBSTRING_INDEX(resulttemp,f_delimiter,-1));
END IF;
set i = i+1;
END WHILE;
END IF;
RETURN result;
END