我需要在WHERE IN(@variable)子句中使用变量,因为我将多个动态值传递给我的存储过程变量。我之前通过创建一个将分割参数的函数看到了MS SQL的完成,但我不确定是否可以在MySQL上实现。
无论如何我可以让这个工作,因为我真的没有其他选择吗?
由于
答案 0 :(得分:4)
也许FIND_IN_SET可以帮到你。
答案 1 :(得分:1)
如何将您感兴趣的值放入临时表中,然后将临时表与主表连接或在子选择语句中使用它?
或者使用实际的表,其中包含run-id的列和值的另一列,并使用连接中的run-id,以便可以对sql或存储过程进行并行调用。
答案 2 :(得分:0)
我参加聚会可能为时已晚,但保留它,因为这也很有用。
SET @data ='12323,12323,84949,2323223';
SET @query = CONCAT("select * FROM table where column in (",@data,")");
PREPARE stmt1 FROM @query;
EXECUTE stmt1;