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

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
相關文章
相關標籤/搜索