【问题标题】:How to refer to a local variable name through another string variable in MYSQL user defined function?如何在MYSQL用户定义函数中通过另一个字符串变量引用一个局部变量名?
【发布时间】:2019-02-21 18:15:37
【问题描述】:

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

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

注意:我在上面的例子中使用了假定的函数 variable() 来显示我想要的。

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

【问题讨论】:

  • 我认为在 MySQL 中没有任何方法可以做到这一点。为什么需要这样做?你想模拟一个数组吗?请改用临时表。
  • 其实你可以用PREPARE做到这一点。

标签: mysql function user-defined-functions


【解决方案1】:

尝试使用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

【讨论】:

  • 谢谢巴马尔。我试图模拟一个数组。我还找到了一种使用 JSON 数组的方法。但你的解决方案正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 2011-11-14
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多