我有像
这样的存储过程 CREATE DEFINER=`test`@`%` PROCEDURE `test`.`get_details`(
in p_istudid int,
in p_icourseid int,
in p_branchid varchar(20)
)
BEGIN
select ...
...
and branch.id in(p_branchid);
END
我想将逗号分隔值传递给第3个参数,如何传递该值? 我试过 -
call get_details(10,11,'20,30');
但仅显示记录的分支ID为20,而不是30。
提前完成。
答案 0 :(得分:3)
您可以在过程中传递逗号分隔值,但是您需要使用预准备语句来使用它,因为您传递的值应该在查询中连接。
delimiter //
CREATE DEFINER=`test`@`%` PROCEDURE `test`.`get_details`(
in p_istudid int,
in p_icourseid int,
in p_branchid varchar(20)
)
BEGIN
set @qry = concat('select .... and branch.id in (\'',p_branchid,'\')');
prepare stmp from @qry;
execute stmp ;
deallocate prepare stmp;
END;//
delimiter ;