mysql存储过程 在动态SQL内获取返回值

很简单,不需要使用游标循环来读取,直接select * into @变量就OK了,还可以传递参数来执行。

Sql代码   收藏代码
  1. #拼接查询总记录的SQL语句  
  2. set v_sqlcounts = concat('select count(*) into @recordcount from ',v_tables,v_where);  
  3. set @sqlcounts := v_sqlcounts;  
  4. #预处理动态SQL  
  5. prepare stmt from @sqlcounts;  
  6. #传递动态SQL内参数  
  7. set @s1= categoryid;  
  8. execute stmt using @s1;  
  9. deallocate prepare stmt;  
  10. #获取动态SQL语句返回值  
  11. set recordcount = @recordcount;  

 以上我上再做存储过程分页里用到动态SQL里将查询到的count记录条数通过变量@recordcount放到recordcount里面了。

mysql的IF ELSE和其他数据库的判断有点不一样,简单的判断语句如下。

Sql代码   收藏代码
  1. #根据总记录跳数计算出总页数  
  2. set pagecount = ceiling((recordcount+0.0)/pagesize);  
  3. if pageindex <1 then  
  4.     set pageindex = 1;  
  5. elseif pageindex > pagecount then  
  6.     set pageindex = pagecount;  
  7. else  
  8.     select pageindex,pagecount;  
  9. end if;  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值