CREATE PROCEDURE `proc_SplitDemo`(
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);
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)=',' then
insert into splittable
(`value`) values
(substring(inputstring from (last_index+1) for (cur_index-last_index-1)));
set last_index=cur_index;
end if;
set cur_index=cur_index+1;
END;
end while;
end;