MySQL的Limit子句

转自:https://www.cnblogs.com/acm-bingzi/p/msqlLimit.html
MySQL的Limit子句

  Limit子句可以被用于强制 SELECT 语句返回指定的记录数。Limit接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

//初始记录行的偏移量是 0(而不是 1)

mysql> SELECT * FROM table LIMIT 5,10;//检索记录行6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:

mysql> SELECT * FROM table LIMIT 95,-1;// 检索记录行 96-last

//如果只给定一个参数,它表示返回最大的记录行数目。换句话说,LIMIT n 等价于 LIMIT 0,n:

mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行


在sql语句中,limt关键字是最后才用到的。以下条件的出现顺序一般是:where->group by->having-order by->limit

附录:OFFSET

  为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

  经常用到在数据库中查询中间几条数据的需求

  比如下面的sql语句:

    ① selete * from testtable limit 2,1;

    ② selete * from testtable limit 2 offset 1;

  注意:

    1.数据库数据计算是从0开始的

    2.offset X是跳过X个数据,limit Y是选取Y个数据

    3.limit  X,Y  中X表示跳过X个数据,读取Y个数据

  这两个都是能完成需要,但是他们之间是有区别的:

    ①是从数据库中第三条开始查询,取一条数据,即第三条数据读取,一二条跳过

    ②是从数据库中的第二条数据开始查询两条数据,即第二条和第三条。

你可能感兴趣的:(MySQL的Limit子句)