我希望有人能帮助我。我想回到所有的行更新,我发现在这个论坛的东西。但现在我创建了一个“procedure”,并希望将update语句与所需的其他语句组合为字符串,并使用“prepare”语句执行该字符串。但由于某些原因,这不起作用。查询(不是字符串)本身可以工作。
有人能帮我吗?
DELIMITER $$
DROP PROCEDURE IF EXISTS updateAndGetUpdatedRows$$
CREATE PROCEDURE updateAndGetUpdatedRows (IN query varchar(255))
BEGIN
SET @buffer = CONCAT_WS(' ','SET @uids := null;',query,'AND ( SELECT @uids := CONCAT_WS(",", ID, @uids) );','SELECT @uids;');
PREPARE stmt FROM @buffer;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;
call updateAndGetUpdatedRows('UPDATE expensesData SET value = 22 WHERE ID = 64');
系统:
innodb\版本:5.5.55-mariadb-38.8协议\版本:10从\类型\转换
版本:5.5.57-mariadb版本\注解:mariadb服务器版本\编译\机器:x86 \ 64版本\编译\操作系统:linux
1条答案
按热度按时间ktca8awb1#
因为鲑鱼,我想出来了。遵循解决方案:
分隔符$$