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存储过程中limit传参

    最近做项目用到了MySQL数据库,感觉还是蛮好用的,但是有同事前几天写存储过程的时候老调不通,我看了看后发现把limit语句后面带的参数随便改成一个数字就调试通过了,不知道是MySql当初就这么设计的 ...

  2. MYSQL存储过程中常使用的命令记录

    MYSQL存储过程中常使用的命令记录 1.触发器trigger 查看:show triggers; 2.存储过程procedure 查看:show procedure status; 查看详细:sho ...

  3. MYSQL存储过程中的IN、OUT和INOUT

    MYSQL存储过程中的IN.OUT和INOUT,不能简单理解为一个方法的参数和返回值,而是面向整个过程上下文变量的. 一.MySQL 存储过程参数(in) 基本可以理解为传入function的参数,而 ...

  4. Mysql 存储过程中使用多游标

    Mysql 存储过程中使用多游标 drop procedure IF EXISTS test_proc_1; create procedure test_proc_1() begin ; ) ; ) ...

  5. MySQL存储过程中使用SELECT …INTO语句为变量赋值

    使用SELECT …INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT …INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT …INTO语句 ...

  6. 【转】MySQL存储过程中使用动态行转列

    MySQL存储过程中使用动态行转列 最近做项目关于数据报表处理,然而数据库存储格式和报表展现形式不同,需要进行一下行转列的操作,在做上一个项目的时候也看了一下,但是后来换了读取方式,也就没深入研究这个 ...

  7. mysql -- 存储过程中 declare 和 set 定义变量的区别

    mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...

  8. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  9. MySQL 存储过程中分页

    MySQL数据库中,自定义存储过程查询表中的数据,带有分页功能.具体实例如下代码: 1 DROP PROCEDURE IF EXISTS `sampledb`.`proc_GetPagedDataSe ...

随机推荐

  1. IOS中两个view的切换

    在ios中,rootview为PassWordViewController,secondview为SecondViewController,实现在rootview中听过一个跳转按钮实现跳转到secon ...

  2. Android网络连接之HttpURLConnection和HttpClient

    1.概念   HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.在 JDK 的 java.net 包中 ...

  3. 20150601_Andriod 打开新窗体

    <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="htt ...

  4. hdu4727 The Number Off of FFF

    理解错题意,wa了几次. 我一开始的理解忽略了实际背景,认为错报是绝对的,不依赖于其左边的人. 而实际上某士兵报数的对错取决且仅取决于他所报的数与其左邻所报的数. 所以假设第一个人没有报错,则其后必有 ...

  5. Black Box 分类: POJ 栈和队列 2015-08-05 14:07 2人阅读 评论(0) 收藏

    Black Box Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8754 Accepted: 3599 Description ...

  6. Uva 1599 最佳路径

    题目链接:https://uva.onlinejudge.org/external/15/1599.pdf 题意: 保证在最短路的时候,输出字典序最小的路径. 方法: 路径上有了权值,可以利用图论的数 ...

  7. qt中信号与槽机制

    一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...

  8. AB串(上帝都不会,我就没救了)

    [题目分析] 设答案的长度为m,

  9. linux Centos 6.5 FTP服务原理及vsfptd的安装、配置(转)

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  10. iosanimationWithKeyPath

    animationWithKeyPath的值: transform.scale = 比例轉換     transform.scale.x = 闊的比例轉換     transform.scale.y ...