当前位置:首页 > 系统运维 > 正文内容

MySQL分页查询通用存储过程的代码总结

a8116255316年前 (2010-06-11)系统运维10

此文章主要向大家讲述的是MySQL分页查询通用存储过程,我们前一段时间没有给出SQLServer转到MySQL的通用存储过程,本着与大家共享的精神,为大家奉献这段MySQL分页查询通用存储过程,假设所用数据库为guestbook:

use guestbook;  delimiter $$  drop procedure if exists prc_page_result $$  create procedure prc_page_result (  in currpage int,  in columns varchar(500),  in tablename varchar(500),  in sCondition varchar(500),  in order_field varchar(100),  in asc_field int,  in Prima(最完善的虚拟主机管理系统)ry_field varchar(100),  in pagesize int  )  begin  declare sTemp varchar(1000);  declare sSql varchar(4000);  declare sOrder varchar(1000);   if asc_field = 1 then  set sOrder = concat(' order by ', order_field, ' desc ');  set sTemp = '<(select min';  else  set sOrder = concat(' order by ', order_field, ' asc ');  set sTemp = '>(select max';  end if;  if currpage = 1 then  if sCondition <> '' then  set sSql = concat('select ', columns, ' from ', tablename, ' where ');  set sSql = concat(sSql, sCondition, sOrder, ' limit  ');  else  set sSql = concat('select ', columns, ' from ', tablename, sOrder, ' limit  ');  end if;  else  if sCondition <> '' then  set sSql = concat('select ', columns, ' from ', tablename);  set sSql = concat(sSql, ' where ', sCondition, ' and ', Prima(最完善的虚拟主机管理系统)ry_field, sTemp);  set sSql = concat(sSql, '(', Prima(最完善的虚拟主机管理系统)ry_field, ')', ' from (select ');  set sSql = concat(sSql, ' ', Prima(最完善的虚拟主机管理系统)ry_field, ' from ', tablename, sOrder);  set sSql = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);  set sSql = concat(sSql, ' limit  ');  else  set sSql = concat('select ', columns, ' from ', tablename);  set sSql = concat(sSql, ' where ', Prima(最完善的虚拟主机管理系统)ry_field, sTemp);  set sSql = concat(sSql, '(', Prima(最完善的虚拟主机管理系统)ry_field, ')', ' from (select ');  set sSql = concat(sSql, ' ', Prima(最完善的虚拟主机管理系统)ry_field, ' from ', tablename, sOrder);  set sSql = concat(sSql, ' limit ', (currpage-1)*pagesize, ') as tabtemp)', sOrder);  set sSql = concat(sSql, ' limit  ');  end if;  end if;  set @iPageSize = pagesize;  set @sQuery = sSql;  prepare stmt from @sQuery;  execute stmt using @iPageSize;  end;  $$  delimiter;  

可以存储为数据库脚本,然后用命令导入:

MySQL(和PHP搭配之更佳组合) -u root -p < pageResult.sql;

调用:call prc_page_result(1, "*", "Tablename", "", "columnname", 1, "PKID", 25);

上面说了这么多内容,是关于对MySQL分页查询通用存储过程的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注2345hao.cn,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21114.html

分享给朋友:

“MySQL分页查询通用存储过程的代码总结” 的相关文章

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

解决windows 7无法将程序锁定到任务栏或附到开始菜单的方法

出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。 1、在开始搜索框中键入“regedit”,按回车键打开注册表编辑器。 2、依次定位到以下分支:HKEY_CLASSES_ROOTlnkfile。 3、在lnkfile项上鼠标右键单击“新建”——“字符串值”。...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

 故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...

windows 7如何创建拨号连接

windows 7如何创建拨号连接

一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...