DROP FUNCTION if EXISTS Get_StrArrayStrOfIndex; CREATE function Get_StrArrayStrOfIndex (str varchar(1024),split varchar(10),indexes INT) returns varchar(1024) begin set @str=LTRIM(RTRIM(str)); set @start=1; -- 索引拆分父字符串开始位置 set @next=1; -- 一个循环一个值,next数组值第几个 set @seed=LENGTH(split); -- 拆分字符串长度 set @split = split; set @location = INSTR(@str,split); -- 第一次出现位置 while @location<>0 AND indexes>@next DO set @start=@location+@seed; set @location=LOCATE(@split,@str,@start); -- 下一个split的位置 set @next=@next+1; END WHILE; if @location =0 then set @location =LENGTH(@str)+1; end if; return substr(@str,@start,@location-@start); -- 截取所在位置的位置,取下一个split位置-开始位置的长度,即数组值 end; SELECT Get_StrArrayStrOfIndex('1,222,3,4,5,6',',',2)