作者:李义星,原创,转载请注明作者!
方法一:
表数据如图
假设两行是一页
取第一页直接查出(limit 2)
非第一页(假设第3页),那么先取出1-2页的数据
SELECT OP.PRODUCT_ID FROM openb2c.OPEN_PRODUCT OP
WHERE BRAND_NAME='001'
ORDER BY OP.PRODUCT_ID LIMIT 4
这个时候可以直接用NOT IN (SELECT OP.PRODUCT_ID FROM openb2c.OPEN_PRODUCT OP
WHERE BRAND_NAME='001'
ORDER BY OP.PRODUCT_ID LIMIT 4 )方式直接分页,但是这样会很慢,我们加入反排序:
SELECT OP.PRODUCT_ID FROM
(
# 取前N行记录
SELECT OP.PRODUCT_ID FROM openb2c.OPEN_PRODUCT OP
WHERE BRAND_NAME='001'
ORDER BY OP.PRODUCT_ID LIMIT 4
) OP
ORDER BY OP.PRODUCT_ID DESC
LIMIT 1
取出反排序后第一条数据,实际上对应的是图中的第四条数据
然后
大于运算(>)就可以取第四条以后的数据,并且设置了LIMIT,只取2条,效率比IN高出很多!
完整SQL:
#前N行中最大的哪行下一行开始取,读取数量为分页大小
SELECT * FROM openb2c.OPEN_PRODUCT OP
WHERE OP.PRODUCT_ID > (
#前N行记录倒叙,并且只取第一条
SELECT OP.PRODUCT_ID FROM
(
# 取前N行记录
SELECT OP.PRODUCT_ID FROM openb2c.OPEN_PRODUCT OP
WHERE BRAND_NAME='001'
ORDER BY OP.PRODUCT_ID LIMIT 57001
) OP
ORDER BY OP.PRODUCT_ID DESC
LIMIT 1
) AND
OP.BRAND_NAME = '001'
ORDER BY OP.PRODUCT_ID
LIMIT 20
然而这种方式只可在主键排序才能进行。所以介绍第二种方法
方法二:
//当有要求排序时
SELECT * FROM XXX ORDER BY XX LIMIT (页数 + 1)*页大小
然后从排序后的数据进行反排序,取出page大小的数据
SELECT * FROM(
SELECT * FROM XXX ORDER BY XX LIMIT (页数 + 1)*页大小
) order by 反排序 limit 页大小
然后在按要求排序
SELECT * FROM
SELECT * FROM(
SELECT * FROM XXX ORDER BY XX LIMIT (页数 + 1)*页大小
) order by XX (原来是升序就降序(反排序) limit pagesize数据量
) ORDER BY XX
和第一种方法排序的效率比较待测试
- 大小: 23.1 KB
分享到:
相关推荐
本项目通过集成MySQL数据库、Java的JDBC技术以及前端的EasyUI框架,实现了数据表格的展示和分页功能,这对于Web应用来说是常见的需求。下面将详细讲解这些技术的使用及其相互配合。 **1. MySQL数据库** MySQL是一款...
Oracle 12c引入了`FETCH NEXT`和`OFFSET`,这使得Oracle的分页语法与MySQL和SQL Server等其他数据库系统更加兼容: ```sql SELECT * FROM your_table OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; ``` 这种方法避免了...
Oracle 不支持 `SELECT TOP` 语法,因此需要采用其他方式来实现类似的功能。可以使用 `ROWNUM` 来限制返回的行数。 ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A WHERE ...
为了将数据库中的数据读回并显示在Sheet上,我们可以使用类似的方法创建一个新子程序: ```vba Sub DisplayFromMySQL() Dim conn As New ADODB.Connection Dim sql As String Dim rs As New ADODB.Recordset ...
在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Classes)框架连接到MySQL...尽管两者都是连接数据库的方法,但原理类似,你可以参考其中的代码结构和逻辑,将其转换为使用MySQL Connector/C++的方式。
在IT行业中,数据库管理和数据检索是至关重要的环节。...通过以上步骤,开发者可以在易语言环境下构建一个功能完善的MySQL数据库分页查询系统,满足用户在大量数据中快速、高效地查找和浏览信息的需求。
在数据库管理领域,分页查询是一项非常实用的功能,它能够帮助开发者有效地管理和展示大量数据,尤其是在Web应用中。本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现...
在IT行业中,SpringMVC和MySQL是两个非常重要的技术组件,它们经常被用来构建高效、可扩展的企业级Web应用程序。SpringMVC作为Spring框架的一部分,主要用于处理HTTP请求和响应,而MySQL则是一种广泛使用的开源关系...
1. 传统SQL分页:直接在SQL查询中使用LIMIT和OFFSET子句(如MySQL)或者TOP和ROW_NUMBER()函数(如SQL Server)来获取指定页的数据。 2. 存储过程分页:在数据库层面编写存储过程,将分页逻辑封装起来,更利于性能...
通过理解这些知识点,开发者可以利用易语言和MySQL实现高效、友好的数据浏览功能,尤其对于那些数据量庞大的应用来说,分页是必不可少的。同时,通过学习和分析提供的源码,初学者可以进一步提升在数据库操作和程序...
在IT领域,分页是一种非常常见的数据展示技术,特别是在网页应用和数据库操作中。它用于将大量数据分割成较小、更易管理的部分,通常每部分称为一页。这使得用户能够逐步浏览信息,而不是一次性加载所有内容,提高了...
这个压缩包文件“一个关于基于ssm,mysql(也含oracle方式)实现的分页查询.rar”主要涉及到如何在SSM环境下,使用MySQL和Oracle数据库进行分页查询的实践案例。 首先,Spring作为核心容器,负责管理对象的生命周期...
对于其他框架,如Express,处理方式类似,只是在处理响应时可能不需要异步封装,可以直接在回调函数中设置响应体。 需要注意的是,为了优化性能,通常我们会创建索引来加速排序和分页操作。对于`id`字段,如果尚未...
在本案例中,我们主要探讨如何使用Ajax、JSON、MyBatis和MySQL来实现一个类似于百度的简单分页功能。这个教程特别适合那些希望提升自己技能的程序员,通过阅读源代码和注释,你可以深入理解这些技术的结合使用。下面...
4. 显示数据:使用`mysql_fetch_object()`或其他类似函数遍历LIMIT后的结果集,显示当前页的数据。 以网上书店的图书查询为例,用户可以输入关键词进行搜索,服务器端的PHP脚本接收请求,构造SQL查询语句,结合...
2. 分页查询实现方式:常见的分页查询实现方式包括:使用SQL语句中的LIMIT和OFFSET子句(适用于MySQL、PostgreSQL等),使用ROW_NUMBER()函数(适用于SQL Server、Oracle等),或者使用其他数据库特有的分页解决方案...
`LIMIT`和`OFFSET`是MySQL中的语法,如果是使用SQL Server或Oracle等数据库,需要转换成相应的分页方式。 实现分页效果时,我们需要计算总页数,这涉及到对总记录数和每页记录数的除法运算。同时,为了方便用户跳转...
1. **数据获取**:从数据库或其他数据源获取数据,并将其加载到`DataTable`。 2. **初始化分页**:根据数据量设定每页显示的记录数,计算总页数。 3. **数据绑定**:使用`SetControl`函数,将`DataTable`的数据绑定...
在基于PHP+MySQL实现分页技术的过程中,我们... - 在实际应用中,应考虑使用配置文件来管理数据库连接信息,提高代码可维护性。 通过以上步骤,我们可以实现一个基本的PHP+MySQL分页功能,有效地管理和展示大量数据。
例如,使用`LIMIT`和`OFFSET`关键词可以在MySQL中实现分页。在大型数据集的情况下,优化分页性能也十分重要,如使用索引、避免全表扫描等策略。 总的来说,“分页的例子(类似google)”是一个综合了前端交互、后端...