2015-04-03 6 views
0

У меня проблема, которую я могу решить на PHP, но я хочу решить в MySQL. Basicley У меня есть сохраненная функция, TASK_ASSIGN(id_task, operator).Как выпустить что-то, что находится внутри переменной в MySQL?

У меня есть другая функция, что SELECT exec FROM tasks. В задачах есть столбец exec, внутри которого я сохраняю формат TASK_ASSIGN(id_task, operator) для выполнения.

Я хочу выполнить хранимую функцию или процедуру, если это возможно. Кто-нибудь может мне помочь?

+2

Проверка: [13.5 Синтаксис SQL для подготовленных заявлений] (http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-prepared-statements.html) и [D.1 Ограничения на сохраненные Программы] (http://dev.mysql.com/doc/refman/5.6/en/stored-program-restrictions.html). – wchiquito

+0

@wchiquito спасибо за помощь, решение было с подготовленными заявлениями. проверьте ответ;) – adaliszk

ответ

0

Раствор был хранимая процедура с этим источником:

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, предложившего Подготовленные заявления.