如何让一个存储过程返回一个select结果和一个变量值

rienzi 2010-04-30 12:07:51
我想搞一个向下对结果集进行翻页的存储过程,使用select语句的limit进行分页,每页显示20条记录,
首先我要获得这个select语句中的所有记录个数,注意是所有记录个数,而不是当前经过limit以后返回的,然后我要获得经过limit以后select返回的结果集,于是这个存储过程就必须返回一个结果集和一个变量,但是我如何让应用程序只通过一条SQL语句就获取到这两个结果呢。


如果把不经过limit的select count(*)的结果作为一个字段加进经过limit的select语句里,那么不就产生了一大堆的相同值的冗余数据了吗,如果我不是每页显示20条记录而是显示很多的话,这个冗余就很大了,但是如果要使用两次SQL语句获取这两个值的话就失去了使用存储过程的意义了。


我对存储过程理解还不深,有什么好方法吗,多谢了。
...全文
331 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rienzi 2010-05-06
  • 打赏
  • 举报
回复
非常感谢楼上两位的回答呢
zuoxingyu 2010-05-05
  • 打赏
  • 举报
回复
call p1(@A)
这样就能获取到存储过程返回的记录集了。

select @A
这样就得到记录总条数了。
trainee 2010-05-04
  • 打赏
  • 举报
回复
mysql中客户端获取服务端变量,也是通过select获取,存储过程也不例外。

所以也要2条SQL语句:
call proc1(@a)
select @a

与其这样,还不如直接先select count(*), 再取分页结果集
rienzi 2010-05-01
  • 打赏
  • 举报
回复
同学们有没有人啊,给点建议呗

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧