Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie führe ich eine Abfrage aus, die in einer Tabellenspalte MySQL gespeichert ist?

Sie können einen Cursor verwenden, um jeden REPORT_QUERY abzurufen auf CT Tabelle, und führen Sie diese mit vorbereiteten Anweisungen aus:

delimiter $$
drop procedure if exists run_queries$$
create procedure run_queries()
begin

    declare s_query varchar(255);

    declare done bool default false;
    declare c_queries cursor for    
        select REPORT_QUERY from CT;
    declare continue handler for not found set done = true;


    open c_queries;
    read_loop: loop

        fetch c_queries into s_query;
        if done then 
            leave read_loop;
        end if;

        -- run the query
        set @sql = s_query;
        prepare stmt from  @sql;
        execute stmt;
        deallocate prepare stmt;
    end loop;

end$$

Nach dem Erstellungsvorgang können Sie wie folgt aufrufen:

run_queries();

aufrufen

Das ist es.