我确实有一个要求,例如当两个输入作为输入传递给存储过程时,需要插入另一个表,行数将取决于输入中传递的字段数。
我试图创建一个存储过程,但它只插入字段长度为1
BEGIN
Declare valu varchar(200);
Declare valu2 varchar(200);
Declare fwo varchar(200);
Declare fwo2 varchar(200);
declare len int;
Declare sl int;
Declare valu3 varchar(255);
Declare jval varchar(255);
set @fwo = (select replace(pinput1,',', ''));
set @fwo2 = (select replace(pinput2,',', ''));
-- select @fwo;
set @len = (select length(@fwo));
-- select @fwo,@len;
set @sl = 1;
if @len >0 then
increment: repeat
set @valu = SUBSTRING(@fwo, @sl , 1);
set @valu2 = SUBSTRING(@fwo2, @sl , 1);
set @jval = JSON_OBJECT('id',@valu2,'policy',@valu);
INSERT INTO `Example`(`Column1`,`Column2`) values(@valu2,@jval);
set @sl = @sl+1;
UNTIL @sl > @len END repeat increment ;
END if ;
END$$
DELIMITER ;
当输入为1,2,3和a,b,c时插入正确发生,但是当我们通过11,12,13和ab,cd时,ef插入发生在上述条件输入之后。同样当长度增加超过1时重复。
有人建议我解决这个问题