MySQL入门教程第11篇限

北京哪间皮肤病医院好 http://m.39.net/baidianfeng/a_4652392.html

MySQL中的LIMIT子句可以用于限制查询返回结果的数量,从而实现常见的Top-N查询和分页查询等功能。

??在SQL标准中,定义了FETCH子句实现查询结果数量的限制。如果使用Oracle、SQLServer或者PostgreSQL,可能会见到这种语法。

11.1LIMIT子句

在查询语句中使用LIMIT子句的语法如下:

SELECTcol1,col2,...FROMtable_name[WHEREconditions][ORDERBY...]LIMIT[off_set,]row_count;

其中,

off_set指定一个行偏移量,从第off_set+1行开始返回数据。默认值为0,表示从第一行开始返回。

row_count指定返回记录的上限数量。

这两个参数都必须是大于等于0的整数。例如,以下查询返回了10位员工的信息:

selectemp_name,sexfromemployeelimit10;emp_name

sex

---------

----

刘备

关羽

张飞

诸葛亮

黄忠

魏延

孙尚香

孙丫鬟

赵云

廖化

除了以上语法形式的LIMIT子句之外,MySQL也支持以下写法(兼容PostgreSQL):

LIMITrow_countOFFSEToff_set

因此,上面的示例也可以写成:

selectemp_name,sexfromemployeelimit10offset0;

一般而言,LIMIT子句很少单独使用,而是和ORDERBY子句一起返回更有意义的数据。

11.2Top-N查询

Top-N查询通常用于返回按照指定规则排序之后的前N条记录,例如销售排行榜。

以下查询用于获取最先入职的前5名员工:

selectemp_name,hire_datefromemployeeorderbyhire_datelimit5;emp_name

hire_date

----------

----------

刘备

-01-01

关羽

-01-01

张飞

-01-01

孙尚香

-08-08

孙丫鬟

-08-08

执行该语句时,先按照hire_date从早到晚进行排序;然后通过LIMIT子句限制返回前5条记录。如果将hire_date降序排序,可以获取到目前为止最后入职的5名员工。

??这种返回Top-N的方式存在一个局限性,就是如果最后有多条记录排名相同,只能随机选择其中一些数据返回。这个问题我们可以利用窗口函数解决,在后续文章中会介绍MySQL8.0新增的窗口函数。

11.3分页查询

在应用程序的前端页面中,通常不会直接显示全部数据,而是采用分页显示的方式。下图是我的CSDN博客


转载请注明:http://www.aierlanlan.com/rzfs/901.html

  • 上一篇文章:
  •   
  • 下一篇文章: