gpt4 book ai didi

MYSQL存储过程只更新记录

转载 作者:行者123 更新时间:2023-11-29 18:40:41 27 4
gpt4 key购买 nike

当 MYSQL 存储过程应该更新 WHERE id IN 子句中的所有 id 时,它只更新一条记录。当我在存储过程之外运行 SELECT 和 UPDATE 时,它工作正常。有什么建议吗?

DELIMITER $$
CREATE PROCEDURE update_ids(IN source int(10),IN target int(10))
BEGIN
DECLARE idList varchar(5000) DEFAULT NULL;
SET idList = (SELECT GROUP_CONCAT(id SEPARATOR ', ') FROM myTable ii WHERE ii.generic_id = source);
UPDATE myTable i SET i.generic_id = target WHERE i.id IN (idList);

END$$
DELIMITER ;

然后我用 --> 来调用它

CALL update_generic_ids(63, 1258);

更新:1 行生效。

提前致谢,

最佳答案

一旦尝试下面的代码块,希望它能解决您的问题!如果有任何问题联系我!
分隔符 $$
创建过程 update_ids(IN 源 int(10),IN 目标 int(10))
开始
声明 idList varchar(5000) 默认为 NULL;
--SET idList = (SELECT GROUP_CONCAT(id SEPARATOR ', ') FROM myTable ii WHERE ii.generic_id = source);
UPDATE myTable i SET i.generic_id = target WHERE i.id IN (
从 myTable ii 中选择 id,其中 ii.generic_id = 源
);



END$$
分隔符;

关于MYSQL存储过程只更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963731/

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