ITPub博客

首页 > IT职业 > IT职场 > mysql存储过程实现split示例

mysql存储过程实现split示例

IT职场 作者:glovey 时间:2021-09-09 09:31:41 0 删除 编辑


复制代码 代码如下:
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    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 ;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2572/viewspace-2804304/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    86
  • 访问量
    770