首页 > 数据库技术 > 详细

SQL limit(分页)

时间:2019-11-04 16:30:14      阅读:92      评论:0      收藏:0      [点我收藏+]

1.limit使用

limit参数,第一个参数:从哪儿开始查;第二个参数:查几条

  • i : 为查询结果的索引值(默认从0开始);
  • n : 为查询结果返回的数量

技术分享图片

 

 -- 从3开始 取 3 条 SELECT * from employee LIMIT 3,3;

技术分享图片

 

 LIMIT 0,3   

技术分享图片

 

 

2.分页思路

技术分享图片

下面是几种limit的方法:原则看看下面几个例子应该就懂了

在数据库中很多地方都会用到,比如当你数据库查询记录有几万、几十万时使用limit查询效率非常快,只需要查询出你需要的数据就可以了·再也不用全表查询导致查询数据库崩溃的情况。

select * from Customer LIMIT 10;--检索前10行数据,显示1-10条数据
select * from Customer LIMIT 1,10;--检索从第2行开始,累加10条id记录,共显示id为2....11
select * from Customer limit 5,10;--检索从第6行开始向前加10条数据,共显示id为6,7....15
select * from Customer limit 6,10;--检索从第7行开始向前加10条记录,显示id为7,8...16

示例:
1)查询student的数据:

select * from student

技术分享图片

 

 查询第一条数据

select * from student limit 1

技术分享图片

 

 查询第二条数据

select * from student limit 1,1

技术分享图片

 

反例

追加:

select * from Customer limit 10,5;--检索从第10行开始向前加5条数据,共显示id为11,12...15

 

官方

1. SQL LIMIT子句简介

要检索查询返回的行的一部分,请使用LIMITOFFSET子句。 以下说明了这些子句的语法:

技术分享图片

 

 

技术分享图片

本教程我们将演示如何使用SQL LIMIT子句来限制SELECT语句返回的行数。

1. SQL LIMIT子句简介

要检索查询返回的行的一部分,请使用LIMITOFFSET子句。 以下说明了这些子句的语法:

技术分享图片

在这个语法中,

  • row_count确定将返回的行数。
  • OFFSET子句在开始返回行之前跳过偏移行。 OFFSET子句是可选的。 如果同时使用LIMITOFFSET子句,OFFSET会在LIMIT约束行数之前先跳过偏移行。

在使用LIMIT子句时,使用ORDER BY子句确保返回的行按指定顺序非常重要。

技术分享图片

 

 

并非所有数据库系统都支持LIMIT子句,因此,LIMIT子句仅在某些数据库系统中可用,例如MySQLPostgreSQLSQLite,Sybase SQL Anywhere和HSQLDB//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/sql/sql-limit.html
1. SQL LIMIT子句示例
我们将使用示例数据库中的employees表来演示LIMIT子句用法。

技术分享图片

 

 以下语句返回employees表中按first_name列排序的所有行。

技术分享图片

 

 执行上面查询语句,得到以下结果 -

技术分享图片

 

 如果要只返回前5行,请使用LIMIT子句,如以下语句。

技术分享图片

 

 执行上面查询语句,得到以下结果 -

技术分享图片

 

 要跳过两行并获取接下来的五行,请使用LIMITOFFSET子句,如以下语句所示。

技术分享图片

 

 结果如下图所示 -

技术分享图片

 

 如果使用的是MySQL,则可以使用LIMIT OFFSET子句的较短形式。

技术分享图片

 

 2. 使用SQL LIMIT获取具有最高或最低值的前N行

可以使用LIMIT子句获取具有最高或最低值的前N行。 例如,以下声明获得薪资最高的前五名员工。

技术分享图片

 

 执行上面示例代码,得到以下结果 -

技术分享图片

 

 

首先,ORDER BY子句按工资按降序对员工进行排序,然后LIMIT子句限制从查询返回的五行。

为了获得薪资最低的前五名员工,可以按升序对员工进行排序。

3. 获取具有第N个最高值的行

假设必须得到公司薪水第二高的员工。请使用LIMIT OFFSET子句,如下所示。
技术分享图片

ORDER BY子句按工资降序对员工进行排序。 LIMIT 1 OFFSET 1子句从结果集中获取第二行。

此查询的假设是每个员工都有不同的薪水。 如果有两名员工拥有相同的最高薪水,那么它将会失败。 此外,如果有两个或更多具有相同第二高薪的员工,则查询只返回第一个。

要解决此问题,可以使用以下语句首先获得第二高薪。

技术分享图片

 

 

ORDER BY子句按工资降序对员工进行排序。 LIMIT 1 OFFSET 1子句从结果集中获取第二行。

此查询的假设是每个员工都有不同的薪水。 如果有两名员工拥有相同的最高薪水,那么它将会失败。 此外,如果有两个或更多具有相同第二高薪的员工,则查询只返回第一个。

要解决此问题,可以使用以下语句首先获得第二高薪。

技术分享图片

 

 执行上面示例代码,得到以下结果 -

技术分享图片

 

 并将结果传递给另一个查询:

技术分享图片

 

 结果如下所示 -

技术分享图片

 

 如果使用子查询,则可以将两个查询组合到单个查询中,如下所示:

技术分享图片

 

 结果如下所示 -

技术分享图片

 

 SQL LIMITOFFSET子句,这些子句用于限制查询返回的行数。

 

延伸阅读:https://www.runoob.com/sqlite/sqlite-limit-clause.html

      https://www.yiibai.com/sql/sql-limit.html





 

SQL limit(分页)

原文:https://www.cnblogs.com/mike-mei/p/11792611.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!