找了半天网上说.检索和赋值不能同时进行..
我这个 该怎么赋值呢.
declare v_a var(20);
set @v_flag = concat(' select count(pro_integral) from sales_product_management where igtxtParentCardNoTxt in ( select igtxtParentCardNoTxt from sales_product_management where pro_integral ="', i_First_Introduer , '" and igtxtParentCardNoTxt = "' , j_First_Introduer ,'" GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'"') ; prepare ee from @v_flag;
EXECUTE ee ;
DEALLOCATE PREPARE ee; 想把这个检索出来的数据 赋值给一个变量 v_a.该怎么写呢.
我这个 该怎么赋值呢.
declare v_a var(20);
set @v_flag = concat(' select count(pro_integral) from sales_product_management where igtxtParentCardNoTxt in ( select igtxtParentCardNoTxt from sales_product_management where pro_integral ="', i_First_Introduer , '" and igtxtParentCardNoTxt = "' , j_First_Introduer ,'" GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'"') ; prepare ee from @v_flag;
EXECUTE ee ;
DEALLOCATE PREPARE ee; 想把这个检索出来的数据 赋值给一个变量 v_a.该怎么写呢.
set @v_flag = concat(' select count(pro_integral) into @v_a from sales_product_management where
.......
可以 set @dff = select count(pro_integral) into @v_a from sales_product_management where... ;
但是要有 EXECUTE 来执行这个语句的话 结果怎么赋值呢. ;
刚才那个变量为什么没有 declare 就可以用呢。
select @v_a;
set @rr=@v_a;
用户变量就是这样,不需要declare
有2种形式如下:
"' select count(pro_integral) from sales_product_management ..."-->
"' select count(pro_integral) into @total_count from sales_product_management ..."-----------------------------------------------------------------' select count(pro_integral) from sales_product_management where ....
GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'"'------------->' select count(pro_integral) from sales_product_management where ....
GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'" into @total_count'
因为·@变量是SESSION变量,不需要declare
在存储过程中的 declare 的变量仅在存储过程内可见。 而你的execute stmt 已经是在存储过程外了,所以不能用内存变量,必须用 @