gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:15:55 25 4
gpt4 key购买 nike

好吧,所以这要么是不可能的,要么我在谷歌搜索上很糟糕。 (这里后者更有可能)
我的问题是这样的:使用存储过程,是否可以将 ids 结果集选择到变量中,然后使用这些 ids 作为在同一 SP 中运行的更新中 IN 的条件?我想要这样的东西(我认识到我忽略了这里的分隔符冲突)

CREATE PROCEDURE test()
BEGIN
DECLARE var1 INT DEFAULT 0;
SELECT id INTO var1 FROM table WHERE this='this';
some other stuff
UPDATE table2 SET blah='blah' WHERE fk_id IN (var1);
END;

“一些其他东西”基本上以这样的方式操纵数据,我将无法通过使用 IN 内的内部查询来获取适当的 id 列表,所以我基本上需要“保存"将适当的 ids 列表放入变量中,然后稍后使用该变量。这可以做到吗?

请不要建议其他方法来执行此操作/重组我的数据/逻辑,这样我就不必担心这个问题。我需要知道的是是否/如何可以做到这一点。如果无法完成,我有备份选项,这将是最可取的方法。

提前致谢。

最佳答案

类似这样的事情:

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;

关于mysql - 选择结果集到变量中,然后在同一存储过程的更新中使用该变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com