- 論壇徽章:
- 1
|
下面是我寫的一個函數(shù),功能是把公式中的每個變量替換為對應(yīng)的值
delimiter //
create function func_test01(formula varchar(800),in_ind_id_str varchar(800),in_ind_val_str varchar(800)) returns text(800) DETERMINISTIC
begin
declare l_formula varchar(800);
declare ind_id varchar(20);
declare ind_val varchar(20);
declare id1 int(4) default 0;
declare len int(4) default 0;
declare tmp_str varchar(800);
declare ind_id_str varchar(800);
declare ind_val_str varchar(800);
set l_formula = formula;
set ind_id_str = in_ind_id_str;
set ind_val_str = in_ind_val_str;
while instr(ind_id_str,',')>0 do
set len = length(ind_id_str);
set id1 = instr(ind_id_str,',');
set ind_id = left(ind_id_str,id1-1);
set tmp_str = right(ind_id_str,len+1-id1);
set ind_id_str = tmp_str;
set len = length(ind_val_str);
set id1 = instr(ind_val_str,',');
set ind_val = left(ind_val_str,id1-1);
set tmp_str = right(ind_val_str,len+1-id1);
set ind_val_str = tmp_str;
set l_formula = replace(l_formula,ind_id,ind_val);
end while;
set l_formula = replace(l_formula,ind_id_str,ind_val_str);
return l_formula;
end;
當(dāng)我運(yùn)行時,mysql終端就沒有反應(yīng)了,例如:select('L1+L2','L1,L2','1,2');
貌似沒有死循環(huán)啊
提前謝謝各位大俠幫俺看看
|
|