欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
前提:
表一、 ddm_demand
system_id demand_id quotate_end_team
1 1 team1,team5,team2
1 2 tea3,team1,team,4
pk:quotate_end_team、demand_id;
表二、 mc_team
team_nam view_order
team1 1
team2 2
解决问题:
将表一中的quotate_end_team字段按照表二的view_order重新排序。
方法:
delimiter $$
drop procedure if exists order_team_name $$
create procedure order_team_name()
begin
declare order_before_teams text ;
declare temp_team_nam text;
declare systemid decimal(10,0) unsigned;
declare demandid char(6);
declare done int;
-- 定义游标1
declare rs_cursor cursor for select system_id,demand_id,quotate_end_team from ddm_demand;
declare continue handler for not found set done=1;
open rs_cursor;
cursor_loop:loop
fetch rs_cursor into systemid,demandid,order_before_teams;
if done=1 then
leave cursor_loop;
end if;
if order_before_teams is not null and order_before_teams '' then
set @sqlstr = concat(where team_nam in (',replace(order_before_teams,,,','),'););
set @sqlstr = concat(create view temporary_team_view as select team_nam,view_order from mc_team ,@sqlstr);
-- drop view if exists temporary_team_view;
prepare stmt from @sqlstr;
execute stmt;
[1] [2]
