小编Sam*_*Sam的帖子

MySQL存储过程在参数中传递数字数组

我不确定我做错了什么......

我有一个简单的查询:

SELECT * FROM locations WHERE (ID IN (1, 2, 3, 4, 5));
Run Code Online (Sandbox Code Playgroud)

现在我只是接受了那个查询并将其变成了一个带有LONGTEXT类型参数的存储过程

sp_FetchMultipleLocations(IN argLocations LONGTEXT)
BEGIN
    SELECT * FROM locations WHERE (ID IN (argLocations));
END;
Run Code Online (Sandbox Code Playgroud)

然后我在该参数中调用具有倍数值的存储过程:

CALL sp_FetchMultipleLocations('1, 2, 3, 4, 5');
Run Code Online (Sandbox Code Playgroud)

但是where子句中的IN语句似乎不起作用,它只显示了第一个(1)位置......为什么会这样?

谢谢

mysql parameters stored-procedures where-clause

1
推荐指数
1
解决办法
3432
查看次数