如何执行 MySQL 中变量中的内容?
How to excute something what is inside a variable in MySQL?
我有一个问题可以在 PHP 中解决,但我想在 MySQL 中解决。 Basicley 我有一个存储函数,TASK_ASSIGN(id_task, operator)
.
我还有一个功能SELECT exec FROM tasks
。任务有一个 exec 列,在里面我保存 TASK_ASSIGN(id_task, operator)
格式来执行。
如果可能的话,我想在存储函数或过程中执行。有人可以帮助我吗?
解决方案是使用此来源的存储过程:
BEGIN
DECLARE $execute_function VARCHAR(100);
-- Get the waiting function for execution
SELECT `exec` INTO $execute_function FROM `tasks` WHERE `id_task` = '1';
-- Create a session variable with the complete select
SET @query = CONCAT("SELECT ",$execute_function," AS result");
-- Execute the custom query
PREPARE execute_query FROM @query;
EXECUTE execute_query;
DEALLOCATE PREPARE execute_query;
END;
感谢 wchiquito 建议准备好的语句。
我有一个问题可以在 PHP 中解决,但我想在 MySQL 中解决。 Basicley 我有一个存储函数,TASK_ASSIGN(id_task, operator)
.
我还有一个功能SELECT exec FROM tasks
。任务有一个 exec 列,在里面我保存 TASK_ASSIGN(id_task, operator)
格式来执行。
如果可能的话,我想在存储函数或过程中执行。有人可以帮助我吗?
解决方案是使用此来源的存储过程:
BEGIN
DECLARE $execute_function VARCHAR(100);
-- Get the waiting function for execution
SELECT `exec` INTO $execute_function FROM `tasks` WHERE `id_task` = '1';
-- Create a session variable with the complete select
SET @query = CONCAT("SELECT ",$execute_function," AS result");
-- Execute the custom query
PREPARE execute_query FROM @query;
EXECUTE execute_query;
DEALLOCATE PREPARE execute_query;
END;
感谢 wchiquito 建议准备好的语句。