mysql sqlserver分页_SqlServer、MySql万能分页代码
sql数据库中常用的分页 我做了一个万能的 用的上的小伙伴拿去耍吧
go ----SqlServer万能分页代码
create procedure [dbo].[sp_datapager]
@pagesize int,--每一页的大小
@pageindex int,--页码数
@tablename varchar(Max),--表的名称
@keycolumn varchar(20),---主键id
@columns varchar(200),--要查询出列的名称
@where varchar(200),---查询条件
@orderby varchar(100),---排序方式
@recordcount int out--输出参数,非0则返回要查询表的总记录数
as
declare @sql nvarchar(3000)
declare @rcsql nvarchar(1000)
set @rcsql='select @rc=count(*) from '+@tablename
set @sql='select top '+convert(varchar(3),@pagesize)+' '+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+')'
if (@where!='')
begin
set @rcsql='select @rc=count(*) from '+@tablename+' where '+@where
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+') and '+@where
end
if (@orderby!='')
begin
if (@where!='')
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' where '+@where+' order by '+@orderby+') and '+
@where+' order by ' +@orderby
end
else
begin
set @sql='select top '+convert(varchar(3),@pagesize)+ @columns+' from '+
@tablename +' where '+@keycolumn+' not in(select top '+
convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@keycolumn+
' from '+@tablename+' order by '+@orderby+')'+' order by ' +@orderby
end
end
declare @param nvarchar(100)
set @param='@rc int output'
exec sp_executesql @sql
exec sp_executesql @rcsql,@param,@rc=@recordcount output
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MySql通用分页加条件
delimiter //
drop procedure if exists `WebPager`;
create DEFINER=`root`@`%` procedure WebPager
(
in tableName varchar(4000),-- 表关系
in selectField varchar(4000),-- 要查询的字段
in strwhere varchar(4000),-- 条件
in ordering varchar(1000),-- 排序字段
in sort int,-- 排序方式 0表示顺序,1表示倒序
in pageIndex int,-- 当前页数
in pageSize int ,-- 每页显示的记录数
out rows int -- 总行数
)
begin
-- declare sqlstr varchar(4000);
set @sqlstr=concat('select SQL_CALC_FOUND_ROWS ',selectField,' from ',tableName,' where 1=1 ');
if strwhere is not null then -- 判断条件是否为空
set @sqlstr=concat(@sqlstr,' and ',strwhere);
end if;
if ordering is not null then
if sort=0 then
set @sqlstr=concat(@sqlstr,' order by ',ordering);
end if;
if sort=1 then
set @sqlstr=concat(@sqlstr,' order by ',ordering,' desc');
end if;
end if;
set @sqlstr=concat(@sqlstr,' limit ',(pageIndex-1)*pageSize,',',pageSize);
-- select sqlstr;
PREPARE distSQL FROM @sqlstr;
EXECUTE distSQL;
DEALLOCATE PREPARE distSQL;
set rows=FOUND_ROWS();-- 获取总记录数
end; //
-- call WebPager('card_manager','*','Del_Flag=0 and Balance>1000','Card_Code',1,1,2,@rows); select @rows;
mysql sqlserver分页_SqlServer、MySql万能分页代码相关推荐
- oracle mssql 实例,oracle,mysql,SqlServer三种数据库的分页查询的实例
MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数, ...
- mysql sqlserver 拷贝_SQLServer复制搭建过程
一次偶然的机会,碰到了传说中的SQL Server数据库,要做迁移.而我本人对于SQL Server来说一窍不通.于是就按照自己对Mysql.oracle的了解来做,于是就先做复制,然后如果有延迟,就 ...
- python mysql 分页_利用python对mysql表做全局模糊搜索并分页实例
在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql.前端请求数据的时候可能会指定这几个参数:要请求的页号,页大小,以及检索条件. "&quo ...
- php分页技术的作用,分页原理技术细节剖析(php+mysql)实例
提到分页,大家都不陌生,在我们日常浏览网页时常遇到,尤其新闻文章列表等都有分页,如下图所示: 分页实例 下面,通过一个实例为大家剖析一下分页原理上技术细节. 一.功能开发思路 在分页功能的实现前,先做 ...
- mysql无序id怎么优化limit_MYSQL分页limit速度太慢优化方法
原标题:MYSQL分页limit速度太慢优化方法 在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦. 当一 ...
- Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
2019独角兽企业重金招聘Python工程师标准>>> 摘要 学习(Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程),尝试搭建ssh框架 ...
- MySQL 和 Oracle 大数据量分页查询方法及其优化
MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...
- 【MySQL Tips】偏移量大的分页查询LIMIT子句的优化方法
SQL优化是要看执行计划分析,并做基准测试的. 前言 MySQL官方关于LIMIT子句的优化建议在之前的文章中写过,链接如下: 8.2.19 LIMIT查询优化.note [MySQL 8翻译]8.2 ...
- mysql 分页查询web_JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)...
JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)-1.jpg (40.23 KB, 下载次数: 0) 2018-8-18 13:34 上传 在开发过程中,经常做的一件事,也是最基本的事 ...
最新文章
- win10下右键菜单添加“打开cmd”
- Unable to instantiate application
- layui表格使用:经验总结(含案例、代码、截图)
- java 读取raw文件_Android 读取assets和raw文件内容实例代码
- 软件各项会议评审意见模版
- tdscdma手机linux,全方位介绍——TD-SCDMA无线技术(1)
- redis可视化工具desktop manager
- PC Logo入门指南
- micropython移植增加驱动,MicroPython之LPC1788移植
- 树形结构的处理——组合模式(一)
- 2020校招途家名宿开发笔试
- 网络文学,为雪中打Call
- Tableau基础 | 维度、度量、蓝色、绿色
- 长假将至,携程滴滴都太老土了!俺们区块链的出行方式是酱紫的……
- 计网 | 网络层 SDN控制器 / 远程控制器
- 小知识:btn.addEventListener is not a function报错处理
- SIW-微带过渡结构
- 永远不要忽视 粉红色/红色的异样字体 在你不知道为什么跟你期望偏差那么大的时候,,不要急记得去问问为什么
- Unity Shader 卡通渲染 (三):仿塞尔达荒野之息 Shader(顶点色控制细节)
- 一、Lua 教程的学习
热门文章
- 关于tcp网络通讯的几个场景的小测试
- git commit -m和git commit -am
- 二、【List、Set、数据结构、Collections】
- 37--计算一个字符串中每个字符出现次数
- 增量导出_[华为]一种实用的增量式深度CTR模型训练方法
- dvwa如何打开_DVWA详细 安装
- Storm程序的并发机制原理总结
- 华为手机充满有提醒吗_2020手机充电速度排名:最快21分钟充满,华为第15名
- python opc plc_PYthon简易OPC数据采集写入Access
- va_list va_start va_end的使用