【问题标题】:How to pass comma separated values to stored procedure in MySql?如何将逗号分隔值传递给 MySql 中的存储过程?
【发布时间】:2016-02-07 06:46:03
【问题描述】:

我有类似的存储过程

    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

我想将逗号分隔的值传递给第三个参数,如何传递该值? 我试过了 -

 call get_details(10,11,'20,30');

但只显示记录的分支 id 为 20,而不是 30。

提前感谢。

【问题讨论】:

标签: mysql stored-procedures


【解决方案1】:

您可以在过程中传递逗号分隔的值,但是您需要使用准备好的语句来使用它,因为您传递的值应该在查询中连接起来。

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 ;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2014-08-23
    • 2023-03-30
    • 2018-01-29
    相关资源
    最近更新 更多