如何通过MYSQL用户定义函数中的另一个字符串变量来引用局部变量名称?

时间:2019-02-21 18:15:37

标签: mysql function user-defined-functions

我在MYSQL中有一个用户定义的函数,在该函数中我需要动态(间接)引用本地变量名称。即

BEGIN
DECLARE D1 INT;
DECLARE i INT;
SET i = 1;
SET D1 = 7;
RETURN variable("D" & i);
END

注意:我在上面的示例中使用了假定的功能variable()来显示我想要的内容。

我希望函数返回值 D1 ,但要使用另一个变量 i 间接引用其名称。我怎样才能做到这一点?请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用PREPAREEXECUTE

BEGIN
    DECLARE D1 INT;
    DECLARE i INT;
    DECLARE result INT;
    SET i = 1;
    SET D1 = 7;
    PREPARE stmt FROM CONCAT('SELECT D', i, ' INTO result');
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
    RETURN result;
END