Mysql 在变量中选择结果集,然后在同一存储过程中的更新中使用该变量

Mysql 在变量中选择结果集,然后在同一存储过程中的更新中使用该变量,mysql,stored-procedures,Mysql,Stored Procedures,好吧,这要么是不可能的,要么我在谷歌搜索方面很差劲。(此处后者的可能性更大) 我的问题是:使用存储过程,是否可以将ID的结果集选择到变量中,然后将这些ID用作在同一SP中运行的更新中的的条件? 我打算这样做(我知道我忽略了分隔符冲突) “其他一些东西”基本上是以这样一种方式操作数据的,即我无法通过在中的中使用内部查询来获得适当的ID列表,因此我基本上需要将适当的ID列表“保存”到一个变量中,然后稍后使用该变量。这能做到吗 请不要建议其他方法来做这件事/重组我的数据/逻辑,这样我就不用担心了。我所

好吧,这要么是不可能的,要么我在谷歌搜索方面很差劲。(此处后者的可能性更大)
我的问题是:使用存储过程,是否可以将ID的结果集选择到变量中,然后将这些ID用作在同一SP中运行的更新中的
的条件?
我打算这样做(我知道我忽略了分隔符冲突)

“其他一些东西”基本上是以这样一种方式操作数据的,即我无法通过在
中的
中使用内部查询来获得适当的ID列表,因此我基本上需要将适当的ID列表“保存”到一个变量中,然后稍后使用该变量。这能做到吗

请不要建议其他方法来做这件事/重组我的数据/逻辑,这样我就不用担心了。我所需要知道的是这是否/如何能做到。我有备份选项,如果无法完成,这将是最可取的方式

提前谢谢

类似这样:

CREATE PROCEDURE test()
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp AS (SELECT id FROM table WHERE this='this');
some other stuff
UPDATE table2 SET blah='blah' WHERE fk_id IN (SELECT id FROM tmp);
END;

啊好的。因此,从我在web上看到的情况来看,要真正将多行结果集从一个查询“结转”到另一个查询,唯一的方法似乎是使用临时表。是这样吗?如果是这样,我会接受答案,否则如果不使用临时表就可以完成,那就更好了。
CREATE PROCEDURE test()
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp AS (SELECT id FROM table WHERE this='this');
some other stuff
UPDATE table2 SET blah='blah' WHERE fk_id IN (SELECT id FROM tmp);
END;