`
jonllen
  • 浏览: 63410 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

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

#拼接查询总记录的SQL语句
set v_sqlcounts = concat('select count(*) into @recordcount from ',v_tables,v_where);
set @sqlcounts := v_sqlcounts;
#预处理动态SQL
prepare stmt from @sqlcounts;
#传递动态SQL内参数
set @s1= categoryid;
execute stmt using @s1;
deallocate prepare stmt;
#获取动态SQL语句返回值
set recordcount = @recordcount;

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

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

#根据总记录跳数计算出总页数
set pagecount = ceiling((recordcount+0.0)/pagesize);
if pageindex <1 then
	set pageindex = 1;
elseif pageindex > pagecount then
	set pageindex = pagecount;
else
	select pageindex,pagecount;
end if;

 

 

分享到:
评论

相关推荐

    mysql存储过程 在动态SQL内获取返回值的方法详解

    本篇文章是对mysql存储过程在动态SQL内获取返回值进行了详细的分析介绍,需要的朋友参考下

    delphi如何调用sql存储过程,并获取结果

    delphi如何调用sql存储过程,并获取结果 adostoredproc1.Close; adostoredproc1.ProcedureName:='sp_thchl'; adostoredproc1.Parameters.Clear; adostoredproc1.Parameters.CreateParameter('out',ftInteger,...

    C#获取存储过程返回值和输出参数值的方法

    代码如下://存储过程//Create PROCEDURE MYSQL// @a int,// @b int//AS// return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“LocalSqlServer”].ToString())...

    MySQL 声明变量及存储过程分析

    声明变量 设置全局变量 set @a=’一个新变量’; 在函数和储存过程中使用的变量declear declear a int unsigned default 1;...这种变量需要设置变量类型 ...储存过程没有返回值,而且不能sql语句调用,只能是call调用,

    mysql数据库的基本操作语法

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: ...

    MysqlDLL,C#操作MYSQL数据库

     Connectionstring//获取或设置用于打开 SQL Server 数据库的字符串  方法: Open()  Close() Dispose()//释放所有资源   2、SqlCommand类  构造函数:SqlCommand(string,conn) 属性: ...

    对比PHP对MySQL的缓冲查询和无缓冲查询

    缓冲查询:将接收查询的结果并把他们存储在客户端的缓存中,而且接下来获取行记录的请求仅仅从本地内获取。 (1)优点:可以在结果集中自由地移动“当前行”的指针,这样很容易找到,因为结果是存在客户端的。 (2)缺点...

    Modyllic:MySQL数据库迁移,模式比较,存储的proc管理变得容易

    它还提供了使使用PHP中的存储过程更容易的工具-附带了一个用于生成PHP包装器的工具,该包装器用于调用存储过程,包括类型检查和完全夸大的返回值,例如,您可以返回表并获取一个包含所有行的数组,而无需单独的提取...

    PHP3程序设计

    它功能强大,和HTML脚本融合在一起,并内建访问数据库的能力;它能够作为Apache Web 服务器的模块执行,也使得其执行效率要高于普通的CGI程序。本书作者是一位经验丰富的程序员,在书中使用了大量的、有一定使用价值...

    基于SpringBoot开发的校园快递管理系统源码+详细部署说明(课程设计).zip

    1. MySQL 5.x.x 版本 导入 `./database/pack-prod-2400.sql` SQL文件; 2. 修改 `application.yml` 配置文件中的数据库 `url`、`username`、`password`; 3. 修改 `application.yml` 配置文件中的 Redis 的 `host`、...

    springmybatis

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    疯狂JAVA讲义

    学生提问:图11.15和图11.16显示的所有按钮都紧挨在一起,如果希望像FlowLayout、GridLayout等布局管理器指定组件的间距该怎么办? 397 11.4 AWT 常用组件 398 11.4.1 基本组件 398 11.4.2 对话框 400 11.5 事件...

Global site tag (gtag.js) - Google Analytics