mysql 存储过程中limit

1、mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum;

2、mysql的低版本(5.1),存储过程中的limit不能使用变量,编译报错,如下:You have an error in your SQL syntax, ...near iStart,iNum

3、怎么解决低版本的问题?
可以使用执行动态sql语句,把整个sql语句传给存储过程。静态sql语句,编译的时候是sql的语句结构就已经确定下来。而动态sql语句,是在执行的时候,才知道sql的语句结构。注意:绑定变量也是静态sql语句,sql语句结构确定下来了,等着填空。动态sql语句如下:
DROP PROCEDURE IF EXISTS `dmu_exedynamicsql_bypage`;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `dmu_exedynamicsql_bypage`(_qrySql MEDIUMTEXT, out _totalCount int)
BEGIN
  set @qrySql = _qrySql;
  prepare stmt from @qrySql;
  execute stmt;
  deallocate prepare stmt; -- 释放掉预处理段

  set _totalCount =0;
  select FOUND_ROWS() into _totalCount;
END
;;
DELIMITER ;

注意:DELIMITER ;;的意思。mysql中默认分号; 是一个执行的结束,而存储过程中包含多个语句,分号间隔,这些语句是一起执行的,怎么解决这个问题?

DELIMITER ;; 告诉mysql 下面的语句一起执行,直到遇到两个分号;;  上面的存储过程执行完之后,DELIMITER ; 把分隔符切换为单个分号;

mysql 存储过程中limit相关推荐

  1. mysql 存储过程中 if else的使用 和赋值方式

    mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...

  2. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  3. mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?

    我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...

  4. mysql存储过程中as_Mysql存储过程中的delimiter

    这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...

  5. MySQL查询中LIMIT的大offset导致性能低下浅析

    这篇文章主要给大家介绍了关于MySQL查询中LIMIT的大offset导致性能低下的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起 ...

  6. MySQL存储过程中的3种循环

    MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...

  7. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法

    中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...

  8. mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  9. oschina mysql limit_Mysql中limit的用法

    Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table ...

最新文章

  1. MLNLP顶会论文发表总榜:谷歌最狂,清北入前十,周明、张岳、刘挺华人前三...
  2. SAP项目各模块简明调研提纲(一本通)
  3. 【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
  4. python获取列表的最后一个元素
  5. 使用lld自动发现监控多实例redis
  6. 专业音频如何把电平转换成dbu_这是我见过最细致的音频系统增益设置指南,跟着学起来!...
  7. SAP CDS view源代码行数统计工具
  8. .NET Core + Kubernetes:Service
  9. (四)Go 语言编译流程简述
  10. java删除mysql 数据库语句怎么写_怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!...
  11. python载入图像
  12. 【计算机网络笔记】物理层:概念传输媒体传输方式
  13. [leetcode]139. 单词拆分
  14. Python Cheat Sheet 中文版
  15. CSS度量单位rem、em、vw、vh详解
  16. 运用frame、frameset框架不显示问题
  17. 面试可能遇到java基础知识
  18. 657-C/C++总结(一)
  19. 计算机c盘哪些可以清理,怎么清理C盘?不知道哪些可以删除?
  20. dhcp服务器修改dns设置方法,dhcp服务器的dns设置方法

热门文章

  1. Invert Binary Tree
  2. 没有建立对验证码签名的目录的发布者信任
  3. 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...
  4. php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...
  5. exe编辑器_【小功能】Unreal Editor中调用exe
  6. java Ajax cache_ajax之cache血与泪~~
  7. 换脸系列——眼鼻口替换
  8. MKL学习——向量操作
  9. Linux下设置环境变量
  10. JSP XML数据处理