参考:写MySQL存储过程实现动态执行SQL,也可以用临时表代替视图。
drop procedure if exists p_simulate_dynamic_cursor; create procedure p_simulate_dynamic_cursor() begin declare v_sql varchar(4000); declare v_field varchar(4000); declare v_result varchar(4000) default ‘‘; declare cur_temp cursor for select v.* from view_temp_20150701 v; declare continue handler for not found set v_field = null; set v_sql = ‘create view view_temp_20150701 as select t.id from t_user t‘; set @v_sql = v_sql; prepare statement from @v_sql; execute statement; deallocate prepare statement; open cur_temp; fetch cur_temp into v_field; while (v_field is not null) do set v_result = concat(v_result, v_field, ‘,‘); fetch cur_temp into v_field; end while; close cur_temp; select v_result; drop view if exists view_temp_20150701; end; call p_simulate_dynamic_cursor();
时间: 2024-08-28 02:36:19