我在MYSQL中有一个用户定义的函数,在该函数中我需要动态(间接)引用本地变量名称。即
BEGIN
DECLARE D1 INT;
DECLARE i INT;
SET i = 1;
SET D1 = 7;
RETURN variable("D" & i);
END
注意:我在上面的示例中使用了假定的功能variable()来显示我想要的内容。
我希望函数返回值 D1 ,但要使用另一个变量 i 间接引用其名称。我怎样才能做到这一点?请帮忙。谢谢。
答案 0 :(得分:0)
尝试使用PREPARE
和EXECUTE
:
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