博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql分页之limit用法与limit优化
阅读量:6752 次
发布时间:2019-06-25

本文共 1183 字,大约阅读时间需要 3 分钟。

Mysql limit分页语句用法

与Oracle和MS SqlServer相比,mysql的分页方法简单的让人想哭。

--语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset--举例:select * from table limit 5; --返回前5行select * from table limit 0,5; --同上,返回前5行select * from table limit 5,10; --返回6-15行

如何优化limit

当一个查询语句偏移量offset很大的时候,如select * from table limit 10000,10 , 最好不要直接使用limit,而是先获取到offset的id后,再直接使用limit size来获取数据。效果会好很多。

如:

select * From customers Where customer_id >=(select customer_id From customers Order By customer_id limit 10000,1) limit 10;

MS SqlServer TOP子句

语法:

SELECT TOP number|percent column_name(s) FROM table_name;

举例:

1. 选取表中前2条记录

select top 2 * from table;

2. 选取表中50%的记录

select top 50 persent from table;

3. 从数据库中检索第10—20条记录

SELECT TOP 10 *FROM TestTableWHERE (ID NOT IN(SELECT TOP 20 idFROM TestTableORDER BY id))ORDER BY ID;

Oracle分页

语法:

SELECT column_name(s) FROM table_name WHERE ROWNUM <= number

举例:

1. 选取前5条记录

SELECT * FROM Persons WHERE ROWNUM <= 5

分页:

--从数据库表中第M条记录开始检索N条记录SELECT * FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum < M + N) t2where t2.r >= M--如:从表Sys_option(主键为sys_id)中从第10条记录开始检索20条记录,语句如下SELECT * FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2Where t2.R >= 10

 

转载地址:http://efvho.baihongyu.com/

你可能感兴趣的文章
Permutations leetcode java
查看>>
JAVA中关于锁机制
查看>>
用boost共享内存实现进程通信的例子
查看>>
【转】搜狗开源内部项目管理平台Cynthia意欲何为
查看>>
Hive基础之Hive表常用操作
查看>>
[C#] 常用工具类——直接在浏览器输出数据
查看>>
Linq to Sql : 三种事务处理方式
查看>>
无线点餐系统应用源码(转)
查看>>
POJ3169:Layout(差分约束)
查看>>
如何打一手好Log(转)
查看>>
Visio Premium 2010密钥+破解激活方法
查看>>
JEE , EJB概念深入概括
查看>>
socket通信简单介绍
查看>>
Unity3D逻辑热更新,第二代舒爽解决方案,L#使用简介
查看>>
状态码表
查看>>
产品经理:想爱没那么简单
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
(转)HTML字符实体(Character Entities),转义字符串(Escape Sequence)
查看>>
去掉 Android工程中让人很不爽的“黄色警告”
查看>>
aliyun阿里云Maven仓库地址
查看>>