leftso 675 0 2018-06-27 20:20:50

logo-cover-MySQL分页_MySQL分页语句_MySQ如何使用limit分页

一 前言

在本教程中,您将学习如何使用MySQL LIMIT语句句来约束SELECT语句返回的行数实现MySQL分页查询。

二.MySQL LIMIT语句简介

LIMIT语句中使用的SELECT语句来限制结果集中的行数。LIMIT语句接受一个或两个参数。两个参数的值必须是零或正整数。

以下举例说明了MySQL中LIMIT带有两个参数的语法:
SELECT 
    column1,column2,...
FROM
    table
LIMIT offset , count;

让我们来看看LIMIT子句参数:

  • offset第一行的偏移规定返回。在offset第一行的是0,而不是1。
  • count指定的最大行数返回。
mysql分页查询limit语句讲解图
当您使用LIMIT 带有一个参数的  子句时,将使用此参数来确定从结果集开头返回的最大行数。
SELECT 
    column1,column2,...
FROM
    table
LIMIT count;
上面的查询等同于下面的查询,LIMIT其中接受两个参数的子句:
SELECT 
    column1,column2,...
FROM
    table
LIMIT 0 , count;

使用MySQL LIMIT获取前N行

您可以使用该LIMIT子句来选择N  表中的第一行,如下所示:

SELECT 
    column1,column2,...
FROM
    table
LIMIT N;
例如,要选择前10个客户,请使用以下查询:
SELECT
 customernumber,
 customername,
 creditlimit
FROM
 customers
LIMIT 10;

使用MySQL LIMIT获取最高和最低值

LIMIT条款经常与该ORDER BY条款一起使用。首先,您使用该ORDER BY  子句根据特定条件对结果集进行排序,然后使用该  LIMIT子句查找最低或最高值。

例如,要选择信用额度最高的前五位客户,请使用以下查询:
SELECT
 customernumber,
 customername,
 creditlimit
FROM
 customers
ORDER BY
 creditlimit DESC
LIMIT 5;
以下查询返回信用额度最低的五位客户:
SELECT
 customernumber,
 customername,
 creditlimit
FROM
 customers
ORDER BY
 creditlimit ASC
LIMIT 5;

使用MySQL LIMIT获得第n个最高值

MySQL中最棘手的问题之一是如何在结果集中选择第n个最高值,例如,选择第二个(或第n个)最昂贵的产品,这是您无法使用MAXMIN功能无法回答的。但是,您可以使用MySQL LIMIT来回答这些问题。

  1. 首先, 按降序对结果集进行排序。
  2. 其次,您使用该LIMIT条款获得第n个最昂贵的产品。

通用查询如下所示:

SELECT 
    column1, column2,...
FROM
    table
ORDER BY column1 DESC
LIMIT nth-1, count;
我们的任务是获得突出产品,这是结果集中第二个最昂贵的产品。 为此,您使用LIMIT子句来选择第二行作为以下查询:(注意,偏移量从零开始)
SELECT
 productName,
 buyprice
FROM
 products
ORDER BY
 buyprice DESC
LIMIT 1, 1;