分页(LIMIT)

Exisi 2023-02-20 22:31:55
Categories: Tags:
  • LIMIT 子句限制查询结果显示的数量

语法

SELECT select_expr [, select_expr] ...

FROM table_references  [PARTITION partition_list]

[WHERE where_condition]

[GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]

[HAVING where_condition]

[ORDER BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]

LIMIT {[offset,] row_count | row_count OFFSET offset};

 

参数

说明

select_expr

包含选择列表,该列表指示要检索的列。指定列或表达式,或者可以使用 *

必须至少有一个select_expr

[FROM table_references

[PARTITION

partition_name[partition_name]

]

]

指定语句作用到的数据表名

参数

描述

table_references

数据表名

[PARTITION

partition_name

[partition_name]

]

SELECT 支持使用 PARTITION 子句的显式分区选择,其中包含分区或子分区(或两者)列表,跟在 table_reference 中的表名之后。在这种情况下,仅从列出的分区中选择行,而忽略表的任何其他分区

属性

描述

partition_name

要使用的分区或子分区的逗号分隔列表。此列表中的每个名称必须是指定表的现有分区或子分区的名称;如果未找到任何分区或子分区,则语句将失败并返回错误(分区'partition_name'不存在)。partition_names中命名的分区和子分区可以按任何顺序列出,并且可能重叠

 

 

[WHERE where_condition]

WHERE子句(如果给定)指示行必须满足的条件才能被选择。

如果没有WHERE子句,语句将选择所有行

参数

描述

where_condition

其中condition是一个表达式,对于要选择的每一行,其计算结果为true

 

[GROUP BY {col_name | expr | position}, ...

[WITH ROLLUP]]

使用GROUPBY时对任意列进行排序,可以使用列名、列别名或列位置在ORDER BYGROUP BY子句中引用为输出选择的列。列位置为整数,以1开头:

参数

描述

col_name

数据列名

expr

数据列别名

position

数据列索引

[WITH ROLLUP]

WITH ROLLUP修饰符添加到GROUP BY子句会导致查询生成另一个(超级聚合)行,添加了ROLLUP后,查询将生成多行

 

[HAVING where_condition]

HAVING子句与WHERE子句一样,指定选择条件。WHERE子句指定选择列表中列的条件,但不能引用聚合函数。

 

HAVING子句指定组的条件,通常由GROUP by子句构成。查询结果仅包括满足HAVING条件的组。(如果不存在GROUP BY,则所有行隐式地形成一个聚合组。)

参数

描述

where_condition

其中condition是一个表达式,对于要选择的每一行,其计算结果为true

 

HAVING子句必须位于任何GROUP BY子句之后和任何ORDER BY子句之前

如果HAVING子句引用的列不明确,则会出现警告

[ORDER BY {col_name | expr | position}

      [ASC | DESC], ... [WITH ROLLUP]]

 ORDER BY子句用于根据查询结果排序,默认为升序

参数

描述

col_name

数据列名

expr

数据列别名

position

数据列索引

ASC | DESC

升序排序和降序排序

[WITH ROLLUP]

WITH ROLLUP修饰符添加到GROUP BY子句会导致查询生成另一个(超级聚合)行,添加了ROLLUP后,查询将生成多行

 

LIMIT {[offset,] row_count

| row_count OFFSET offset}

LIMIT 子句可用于限制 SELECT 语句返回的行数。 LIMIT 接受一个或两个数字参数,它们都必须是非负整数常量,但以下情况除外:

  • 在准备好的语句中,可以使用 LIMIT 指定参数?占位符标记。
  • 在存储的程序中,可以使用整数值的例程参数或局部变量来指定 LIMIT 参数。

 

参数

描述

[offset,]

第一行的偏移量,初始行的偏移量为 0

row_count

最大行数

 

示例

mysql> SELECT name,age

    -> FROM tb_student

    -> LIMIT 0, 5;

 

mysql> SELECT name,age

    -> FROM tb_student

    -> LIMIT 5;

 

运行结果如下:

+----------+--------+

| name      | score |

+----------+--------+

| John      |   22    |

| Jim        |   23    |

| Thomas  |   25    |

| Henry    |   27    |

| Seery    |   27    |

+----------+--------+

4 rows in set (0.00 sec)