我有像这样的存储过程
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
Run Code Online (Sandbox Code Playgroud)
我想将逗号分隔值传递给第三个参数,如何传递该值?我尝试过 -
call get_details(10,11,'20,30');
Run Code Online (Sandbox Code Playgroud)
但只显示分支 ID 为 20 的记录,而不是 30。
提前致谢。
您可以在过程中传递逗号分隔的值,但是您需要使用准备好的语句来使用它,因为您传递的值应该在查询中连接。
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 ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6136 次 |
| 最近记录: |