以前一直是把分页算法写在类里面,今天试了试写进存储过程中,效果好不错。
使用方法:
CALL `dbpassport`.`get_page`('表名','字段名列表(多字段用逗号隔开)',当前页号码,每页记录数,'排序字段(多字段用逗号隔开)','筛选条件(没有则留空)')
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_page`(
/**//*Table name*/
tableName varchar(100),
/**//*Fileds to display*/
fieldsNames varchar(100),
/**//*Page index*/
pageIndex int,
/**//*Page Size*/
pageSize int,
/**//*Field to sort*/
sortName varchar(500),
/**//*Condition*/
strWhere varchar(500)
)
BEGIN
DECLARE fieldlist varchar(200);
if fieldsNames=''||fieldsNames=null THEN
set fieldlist='*';
else
set fieldlist=fieldsNames;
end if;
if strWhere=''||strWhere=null then
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
else
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
end if;
PREPARE stmt1 FROM @strSQL;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CrackCell/archive/2007/10/09/1817215.aspx
分享到:
相关推荐
本篇文章将深入探讨MySQL中的分页存储过程及其代码调用方法。 首先,理解分页的基本概念。在网页或应用程序中,我们通常会看到“上一页”、“下一页”这样的导航,这就是分页的表现形式。分页查询通过设置每页显示...
### MySQL存储过程实现分页 #### 背景与需求 在数据库操作中,分页是一种常见的需求,尤其是在处理大量数据时。通过分页技术,可以有效地减少每次查询的数据量,提高系统的响应速度和用户体验。MySQL作为一种广泛...
### MySQL 分页存储过程详解 在数据库操作中,分页是一项非常常见的需求,尤其是在处理大量数据时。通过分页可以有效地提高数据展示的效率,并优化用户体验。本文将深入解析一个MySQL中的分页存储过程,旨在帮助...
本篇文章将深入探讨MySQL存储过程在实现通用分页中的应用。 首先,让我们理解什么是分页。分页是数据库查询结果的一种展示方式,它将大量的数据分成若干个小部分,每次只显示一部分,这样用户可以逐页浏览,避免一...
在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...
本文将深入探讨如何通过使用存储过程来实现高效的分页存储过程,特别是针对ASP.NET应用程序。 标题 "效率高的分页存储过程实现的分页" 提到的是一种优化数据检索的技术。在ASP.NET开发中,GridView控件是常用的数据...
### JSP分页与存储过程分页详解 #### 一、引言 在Web开发中,数据展示往往需要进行分页处理,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)是一种广泛使用的服务器端脚本技术,常用于动态网页的开发。...
存储过程不仅可以用于基本的分页查询,还可以结合其他数据库功能,如事务处理、日志记录等,进一步提升系统性能和稳定性。 总之,存储过程在多表分页中的应用能够有效提升数据库操作的效率,优化用户体验。在实际...
开发者会创建一个包含参数的存储过程,这些参数用于指定分页所需的条件,如每页记录数和当前页号。例如,一个典型的分页存储过程可能接收两个输入参数:@PageSize(每页记录数)和@PageNumber(当前页号),并返回...
在分页场景下,存储过程通常用于根据指定的页码和每页记录数,从数据库中获取相应范围的数据。 AspNetPager分页控件的使用流程通常包括以下几个步骤: 1. **配置数据库连接**:在ASP.NET项目中设置数据库连接字符...
ROWNUM在查询时为每行生成一个唯一的数字,但需要注意的是,ROWNUM在查询时是立即计算的,因此不能直接用于分页,需要结合子查询或者连接来实现。例如,获取第一页(每页10条记录)的数据可以这样写: ```sql ...
4. **存储过程**:可以创建存储过程来封装分页逻辑,减少重复代码,提高效率。 四、分页策略 1. **静态分页**:固定每页的记录数,适合数据量变化不大且不需要实时更新的场景。 2. **动态分页**:根据用户需求动态...
在MySQL中,一个经典的分页排序存储过程可能如下: ```sql DELIMITER // CREATE PROCEDURE GetPagedSortedData(IN page INT, IN pageSize INT, IN sortColumn VARCHAR(255), IN sortOrder ENUM('ASC', 'DESC')) ...
在没有存储过程的情况下,我们通常会使用LIMIT和OFFSET关键字(在MySQL中)或TOP和SKIP关键字(在SQL Server中)来实现分页。然而,这种方法在大数据量时性能不佳,因为OFFSET需要扫描并跳过大量的行,这可能导致...
总的来说,这个MySQL分页查询通用存储过程为开发人员提供了一个便捷的工具,用于处理分页查询的复杂逻辑,简化了代码编写。但实际使用时,还需要根据具体的数据库设计和数据量大小进行适当的调整和优化。
在数据库管理中,分页存储过程是用于处理大量数据查询的一种高效方法,它允许用户以较小的数据块(页面)来浏览结果集,而不是一次性加载所有数据。这在处理大规模数据时尤其有用,因为它减少了内存占用,提高了用户...
例如,存储过程可能包含`OFFSET`和`FETCH NEXT`(在SQL Server中)或者`LIMIT`和`OFFSET`(在MySQL中)来获取指定范围的记录。 2. **GridView控件**: GridView是ASP.NET中常用的数据绑定控件,能够显示来自数据源...
"sql分页存储过程"是指利用SQL语言编写的一个存储过程,这个过程专门用于执行分页查询。本文将详细讲解SQL分页存储过程的概念、原理以及如何实现。 首先,理解分页查询的基本概念。分页查询允许我们从数据库中按...
分页存储过程是数据库系统中预编译的SQL代码集合,用于高效地检索特定数据集的一部分,通常是一个页面的数据量。这样的存储过程可以显著减少网络传输的数据量,改善前端应用的响应时间,并减轻服务器的负载。下面...
本教程将深入讲解如何利用存储过程实现自定义分页,以提高性能并优化用户体验。ASP.NET、C#、SQL以及DBA技能在此过程中扮演着核心角色。 首先,我们需要理解什么是存储过程。存储过程是预编译的SQL语句集合,存储在...