欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql存储过程实现split示例

程序员文章站 2024-02-27 19:56:39
复制代码 代码如下: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 ;