mysql存储过程实现split示例
程序员文章站
2024-02-29 15:56:40
复制代码 代码如下:call procedure_split('分享,代码,片段',',');select * from splittable;
复制代码 代码如下:dr...
复制代码 代码如下:
call procedure_split('分享,代码,片段',',');
select * from splittable;
复制代码 代码如下:
drop procedure if exists procedure_split;
create procedure `procedure_split`(
inputstring varchar(1000),
delim char(1)
)
begin
declare strlen int default length(inputstring);
declare last_index int default 0;
declare cur_index int default 1;
declare cur_char varchar(200);
declare len int;
drop temporary table if exists splittable;
create temporary table splittable(
value varchar(20)
) ;
while(cur_index<=strlen) do
begin
if substring(inputstring from cur_index for 1)=delim or cur_index=strlen then
set len=cur_index-last_index-1;
if cur_index=strlen then
set len=len+1;
end if;
insert into splittable(`value`)values(substring(inputstring from (last_index+1) for len));
set last_index=cur_index;
end if;
set cur_index=cur_index+1;
end;
end while;
end ;
上一篇: mysqldump数据库备份参数详解