我是初级存储过程和mySQL的新手,我用
调用sp String ids = "1,2,3,4,5";
CallableStatement proc =
connection.prepareCall("{ call p_test(?) }");
proc.setString(1, ids);
cs.execute();
CREATE PROCEDURE test.`p_test`(IN ids String)
...
SELECT *
FROM table1 t1
WHERE t1.int_field IN (ids)
...
任何帮助将不胜感激。
答案 0 :(得分:0)
Mysql没有可以传递给存储过程的数组类型。你传递的只是一个字符串,只会匹配t1.int_field in ("1,2,3,4,5,6")
,一个字符串。你想要的是t1.int_field in (1,2,3,4,5,6)
,一个整数列表。
一般方法是:
WHERE t1.int_field in (select ID from my_temp_table)