【问题标题】:call stored procedure with multiple values into single parameter in mysql在mysql中将具有多个值的存储过程调用到单个参数中
【发布时间】:2016-08-20 20:03:47
【问题描述】:

我会创建存储过程,但是每当我尝试将具有多个值的存储过程调用到单个参数中时都会失败,如下所述。

delimiter //
create procedure sp_country(IN code varchar(50))
begin
SELECT Name, Code2 FROM country where Code2 in (code);
end;//
delimiter ;

当我传递一个值时,它将返回一条记录。

call sp_country ('AF')

但每当我传递以下两个值时,它不会返回任何内容。

call sp_country ('AF,AL')

我一直在引用一些网站,但在这种情况下无法正常使用。有人可以告诉我。谢谢!

【问题讨论】:

    标签: mysql sql stored-procedures parameter-passing


    【解决方案1】:

    这里的问题是您的选择语句将使用where code in 'AF,AL' 执行。显然,没有任何代码为 AF,AL 的行。

    要解决此问题,当您希望在“In”子句中使用该参数时,您必须稍微修改将参数传递给存储过程的方法。

    检查以下主题以获取想法

    Passing a varchar full of comma delimited values to a SQL Server IN function

    http://www.itdeveloperzone.com/2013/03/using-variable-in-in-clause-in-sql.html

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 2022-12-06
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多