MySQL 存储过程:动态传入表名和参数,相加两个查询结果
在 MySQL 中,您可以通过使用动态 SQL 和存储过程来实现动态传入表名和参数,并将两个查询语句的结果值相加。以下是一个示例:
DELIMITER //
CREATE PROCEDURE add_values(IN table_name VARCHAR(255), IN parameter1 INT, IN parameter2 INT, OUT result INT)
BEGIN
SET @query1 = CONCAT('SELECT column1 FROM ', table_name, ' WHERE column2 = ', parameter1);
SET @query2 = CONCAT('SELECT column3 FROM ', table_name, ' WHERE column4 = ', parameter2);
PREPARE stmt1 FROM @query1;
EXECUTE stmt1;
SET @value1 = column1;
DEALLOCATE PREPARE stmt1;
PREPARE stmt2 FROM @query2;
EXECUTE stmt2;
SET @value2 = column3;
DEALLOCATE PREPARE stmt2;
SET result = @value1 + @value2;
END //
DELIMITER ;
在上述示例中,add_values 存储过程接受三个参数:table_name(表名)、parameter1 和 parameter2(参数)。首先,通过使用 CONCAT 函数将表名和参数拼接到查询语句中。然后,使用 PREPARE 和 EXECUTE 语句执行动态查询,并将结果存储到变量中。最后,将两个结果值相加,并将结果存储到 result 输出参数中。
要调用此存储过程并获取结果,可以使用以下语句:
CALL add_values('your_table_name', your_parameter1, your_parameter2, @result);
SELECT @result;
请注意将 your_table_name 替换为实际的表名,将 your_parameter1 和 your_parameter2 替换为实际的参数值。执行以上语句后,将会得到两个查询语句的结果值相加的结果。
原文地址: https://www.cveoy.top/t/topic/qco6 著作权归作者所有。请勿转载和采集!