我会创建存储过程,但是每当我尝试将具有多个值的存储过程调用到单个参数中时,我就失败了。
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')
我一直在引用一些网站,但在这种情况下我没有得到正确的解决方案。有人可以告诉我。谢谢!
答案 0 :(得分:0)
这里的问题是你的select语句将用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