在 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(表名)、parameter1parameter2(参数)。首先,通过使用 CONCAT 函数将表名和参数拼接到查询语句中。然后,使用 PREPAREEXECUTE 语句执行动态查询,并将结果存储到变量中。最后,将两个结果值相加,并将结果存储到 result 输出参数中。

要调用此存储过程并获取结果,可以使用以下语句:

CALL add_values('your_table_name', your_parameter1, your_parameter2, @result);
SELECT @result;

请注意将 your_table_name 替换为实际的表名,将 your_parameter1your_parameter2 替换为实际的参数值。执行以上语句后,将会得到两个查询语句的结果值相加的结果。


原文地址: https://www.cveoy.top/t/topic/qco6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录