Как обратиться к имени локальной переменной через другую строковую переменную в пользовательской функции MYSQL? - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть пользовательская функция в MYSQL, в которой мне нужно динамически (косвенно) обращаться к имени локальной переменной.т.е.

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

Примечание. Я использовал предполагаемую переменную функции () в приведенном выше примере, чтобы показать, что я хочу.

Я хочу, чтобы функция возвращала значение D1 , но косвенно ссылаясь на его имя, используя другую переменную i .Как я могу это сделать?Пожалуйста помоги.Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте использовать 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
...