mysql 存储过程中limit
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相关推荐
- mysql 存储过程中 if else的使用 和赋值方式
mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...
- mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...
- mysql存储过程中as_Mysql存储过程中的delimiter
这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...
- MySQL查询中LIMIT的大offset导致性能低下浅析
这篇文章主要给大家介绍了关于MySQL查询中LIMIT的大offset导致性能低下的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起 ...
- MySQL存储过程中的3种循环
MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...
- linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...
- mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- oschina mysql limit_Mysql中limit的用法
Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table ...
最新文章
- MLNLP顶会论文发表总榜:谷歌最狂,清北入前十,周明、张岳、刘挺华人前三...
- SAP项目各模块简明调研提纲(一本通)
- 【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
- python获取列表的最后一个元素
- 使用lld自动发现监控多实例redis
- 专业音频如何把电平转换成dbu_这是我见过最细致的音频系统增益设置指南,跟着学起来!...
- SAP CDS view源代码行数统计工具
- .NET Core + Kubernetes:Service
- (四)Go 语言编译流程简述
- java删除mysql 数据库语句怎么写_怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!...
- python载入图像
- 【计算机网络笔记】物理层:概念传输媒体传输方式
- [leetcode]139. 单词拆分
- Python Cheat Sheet 中文版
- CSS度量单位rem、em、vw、vh详解
- 运用frame、frameset框架不显示问题
- 面试可能遇到java基础知识
- 657-C/C++总结(一)
- 计算机c盘哪些可以清理,怎么清理C盘?不知道哪些可以删除?
- dhcp服务器修改dns设置方法,dhcp服务器的dns设置方法
热门文章
- Invert Binary Tree
- 没有建立对验证码签名的目录的发布者信任
- 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...
- php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...
- exe编辑器_【小功能】Unreal Editor中调用exe
- java Ajax cache_ajax之cache血与泪~~
- 换脸系列——眼鼻口替换
- MKL学习——向量操作
- Linux下设置环境变量
- JSP XML数据处理