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 ;
//SQL/5492