mysql存储过程实现split函数的例子

发布时间:2020-03-18编辑:脚本学堂
本文分享下使用mysql存储过程实现的一个split函数,学习下mysql split函数的实现方法,用于mysql中字符串的分割,有需要的朋友参考下。

本例中实现的split函数,调用方法如下:
 

复制代码 代码示例:
call proc_split('a,b,c',',');
select * from splittable

以下是mysql/procedure/ target=_blank class=infotextkey>mysql存储过程实现的split函数,代码:
 

复制代码 代码示例:
CREATE PROCEDURE `proc_split`(
    inputstring varchar(1000),
    delim char(1)
)
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
begin
    declare strlen int;
    declare last_index int;
    declare cur_index int;
    declare cur_char VARCHAR(200);
    declare len int;
    set cur_index=1;
    set last_index=0;
    set strlen=length(inputstring);
    drop temporary table if exists splittable;/**/
    create TEMPORARY table splittable(
        id int AUTO_INCREMENT,
        value VARCHAR(20),
        PRIMARY KEY (`ID`),
        UNIQUE KEY `ID` (`ID`)
    ) ;
    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

小编觉得本例还不错,即学习了mysql存储过程,又掌握了split函数的实现方法,一举两得。