CREATE PROCEDURE `page`(
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 primary_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 ', primary_field, sTemp);
set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
set sSql = concat(sSql, ' ', primary_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 ', primary_field, sTemp);
set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
set sSql = concat(sSql, ' ', primary_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;
分享到:
相关推荐
在这个项目中,“chat聊天室增加mysql记录功能 nodejs”是一个使用Node.js和Socket.IO实现的聊天室,它集成MySQL数据库来存储聊天记录。下面我们将深入探讨这个话题,详细介绍如何在Node.js环境中使用MySQL数据库来...
总的来说,InnoDB的数据页结构优化了数据的存储和查询,通过Page Directory加速了在页内查找特定记录的过程,而User Records的链表设计则允许灵活的数据插入和删除操作。理解这些数据结构对于优化MySQL数据库的性能...
MySQL提供了SQL(结构化查询语言)作为与数据库交互的语言。 存储过程是MySQL中的一个重要概念,它是一组预编译的SQL语句,可以在需要时执行。存储过程的好处包括提高性能、减少网络流量、增强安全性、简化复杂的...
Query-Digest-UI 提供了一个用户友好的界面,可以展示慢查询的摘要信息、详细查询列表、按时间排序的查询以及查询语句的执行计划。你可以通过这个界面筛选查询、查看平均执行时间、锁定时间等关键指标,从而找出性能...
在“mysql 流水号 存储过程 附表结构”这个主题中,我们主要探讨如何在MySQL中创建一个存储过程来生成流水号,并结合相关的表结构来实现这一功能。 流水号通常用于为数据库中的记录生成唯一的标识,它们可以是自增...
### MySQL体系结构及原理...综上所述,MySQL的体系结构和InnoDB存储引擎的设计都是为了应对现代数据处理的挑战。通过对这些关键问题的理解,我们可以更好地优化MySQL的配置和使用策略,以满足各种应用场景的需求。
在数据库管理领域,MySQL是广泛使用的开源关系型数据库系统,其数据结构的管理和同步对于保持多环境一致性至关重要。本文将深入探讨如何比较MySQL数据库结构并实现同步,这对于开发者和DBA来说是日常工作中的一项...
1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 Checkpoint技术 2.3 Master Thread工作方式 2.4 InnoDB关键特性 3. 文件 3.1 参数文件 3.2 日志文件 3.3 套接字文件 3.4 pid文件 ...
自连接和递归联合是一种常见的递归查询方式,其核心思想是通过不断地将当前层级的记录与子层级的记录连接起来,逐步构建出完整的层级结构。 **基本步骤**: 1. **初始化查询**:从根节点开始,获取所有根节点的...
在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的...通过创建存储过程并结合循环结构,可以实现批量添加记录的功能。理解并熟练掌握这一技术,对于数据库管理和开发工作来说是非常有价值的。
MySQL体系结构是数据库管理系统的核心,它决定了MySQL数据库如何存储、检索和管理数据。在了解MySQL体系结构之前,首先需要知道MySQL是一个开源的关系型数据库管理系统(RDBMS),广泛应用于互联网应用的后端数据库...
使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。 1、右键Navicat中的数据库→数据传输(Data Transfer)。 2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)...
2. **获取表信息**:连接成功后,脚本会查询每个数据库中的所有表,并存储其结构信息,包括字段名、字段类型、是否允许NULL、默认值、索引等。 3. **对比分析**:然后,脚本将比较两组表结构,查找并记录差异。这...
《InnoDB记录存储结构解析》 在MySQL的世界里,存储引擎是数据库管理的核心组件,它负责数据的存储和检索。其中,InnoDB是最常见的存储引擎,以其事务安全性和高性能著称。本文将深入探讨InnoDB的记录存储结构,...
在“mysql数据表结构说明模板.pdf”中,我们关注的是如何设计和利用数据表来存储与在线监测系统相关的数据,特别是针对电力行业的输电监控。在这个系统中,数据访问是通过南瑞界面进行的,它依赖于MySQL数据库提供的...
InnoDB存储引擎使用缓冲池来缓存数据和索引页,减少磁盘I/O。调整缓冲池大小可以显著提升性能,尤其是对于读密集型应用。 8. **日志系统** 包括redo log(重做日志)和undo log(回滚日志),用于保证事务的ACID...
在B+树索引中,所有的数据记录都存放在叶子节点上,非叶子节点仅用来存放索引键值和指向子节点的指针,这种结构大大增加了树的分支因子,从而减少了树的高度,减少了IO次数,因此可以快速定位到记录所在的页。...
MySQL体系结构包括物理架构和逻辑架构两大部分,物理架构主要涉及文件和目录的组织,而逻辑架构则涉及到数据库系统的工作原理和组件。 在物理架构方面,MySQL安装后会在系统中形成一系列的目录,这些目录和文件构成...
当使用LIKE查询时,如果模式以%开头或结尾,MySQL无法利用索引来加速查询,因为这需要遍历整个表来查找匹配的记录。因此,对于大数据表,这种查询会非常慢。 为了解决这个问题,可以采取以下策略: 1. **优化查询...