您好,欢迎访问一九零五行业门户网

mysql存储过程中的多个select问题

mysql
在存储过程中有多个select,但我想只让最后那个select作为结果集返回,怎么屏蔽其他的select输出?
回复内容: mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。
mysql中存储过程的例子:
create procedure addvoucher (
in userid int,
in voucherid int,
out result int
)
begin
select
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
from
t_voucher
where
id = voucherid;
set autocommit = 0;
if exists (
select
*
from
t_user_voucher tuv,
t_voucher tv
where
tv.id = tuv.voucherid
and tv.batch =@batch_a
) then
set result = 1;-- 已存在
select
result;
else
if @c_count_a > 0 then
if (
to_days(@endate_a) - to_days(now())
) > 0 then
if @isdead_a = 1 then
insert into t_user_voucher (userid, voucherid, isdead)
values
(userid, voucherid, 1);
update t_voucher set c_count = c_count-1 where id = voucherid;
set result = 0;-- 成功
end;

这不是我想要的结果,你的答案不对我的问题
1)首先你如果可以改存储过程吗?如果可以把前面几个屏蔽掉算了,既然不需要为什么要查询呢?
2)如果你不能改,最笨的办发就是你在数一下你要的那个select是第几个,然后在返回的结果里取第几个结果集
你先看看前面那几个select是不是必要的,咱们再想解决办法
其它类似信息

推荐信息