BEGIN declare rules VARCHAR(500) DEFAULT ''; declare rulesStr VARCHAR(500) DEFAULT ''; set @i = length(s_str) - length(replace(s_str,s_split,'')); -- 算出分隔符的總數 set @left_str = s_str; while @i>0 -- 有多少個分隔符就循環多少遍 do set @sub_str = substr(@left_str,1,instr(@left_str,s_split)-1); -- 獲得分隔符前面的字符串 set @left_str = substr(@left_str,length(@sub_str)+length(s_split)+1); -- 獲得分隔符後面的字符串 set @n = trim(@sub_str); select c.RuleName into rules FROM Park_Charge_Rule c where c.ID = @n; set rulesStr=concat(rulesStr,rules,","); set @i = @i - 1;
end while; set @n = trim(@left_str); select c.RuleName into rules FROM Park_Charge_Rule c where c.ID = @n; set rulesStr=concat(rulesStr,rules,""); RETURN rulesStr; END.net