MySQL 限制和偏移示例

LIMIT 关键字是什么?

limit 关键字用于限制查询结果中返回的行数。

它可以与 SELECT、UPDATE 或 DELETE 命令 LIMIT 关键字语法结合使用

LIMIT 关键字的语法如下

SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT  N;

点击这里

  • “SELECT {字段名称| *} FROM 表名称”选择语句 包含我们希望在查询中返回的字段。
  • “[WHERE 条件]” 是可选的,但如果提供,则可用于指定结果集的过滤器。
  • “限制 N” 是关键字, N 是从 0 开始的任意数字,输入 0 作为限制不会在查询中返回任何记录。输入一个数字,比如 5,将返回五条记录。如果指定表中的记录小于 N,则结果集中将返回查询表中的所有记录。

让我们看一个例子——

SELECT *  FROM members LIMIT 2;
membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL

从上面的截图中你可以看到,只有两名成员返回了。

从数据库中获取十 (10) 名成员的列表

假设我们想从 Myflix 数据库中获取前 10 名注册会员的列表。我们将使用以下脚本来实现这一点。

SELECT *  FROM members LIMIT 10;

执行上述脚本将得到以下结果

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
1 Janet Jones Female 21-07-1980 NULL First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm NULL
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL
4 Gloria Williams Female 14-02-1984 NULL 2nd Street 23 NULL NULL NULL NULL
5 Leonard Hofstadter Male NULL NULL Woodcrest NULL 845738767 NULL NULL
6 Sheldon Cooper Male NULL NULL Woodcrest NULL 976736763 NULL NULL
7 Rajesh Koothrappali Male NULL NULL Woodcrest NULL 938867763 NULL NULL
8 Leslie Winkle Male 14-02-1984 NULL Woodcrest NULL 987636553 NULL NULL
9 Howard Wolowitz Male 24-08-1981 NULL SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me NULL

请注意,由于 LIMIT 子句中的 N 大于表中的总记录数,因此我们的查询仅返回了 9 名成员。

将上面的脚本重写如下

SELECT *  FROM members LIMIT 9;

我们的查询结果集中仅返回 9 行。

在 LIMIT 查询中使用 OFF SET

- 抵消 值也最常与 LIMIT 关键字一起使用。OFF SET 值允许我们指定从哪一行开始检索数据

假设我们想要从行中间开始获取有限数量的成员,我们可以使用 LIMIT 关键字和偏移值来实现这一点。下面显示的脚本从第二行开始获取数据并将结果限制为 2。

SELECT * FROM `members` LIMIT 1, 2;

在以下位置执行上述脚本 MySQL 针对 myflixdb 的工作台给出以下结果。

membership_ number full_ names gender date_of _birth date_of _registration physical_ address postal_ address contact_ number email credit_ card_ number
2 Janet Smith Jones Female 23-06-1980 NULL Melrose 123 NULL NULL jj@fstreet.com NULL
3 Robert Phil Male 12-07-1989 NULL 3rd Street 34 NULL 12345 rm@tstreet.com NULL

Note that here OFFSET = 1 Hence row#2 is returned & Limit = 2, Hence only 2 records are returned

何时应该使用 LIMIT 关键字?

假设我们正在开发在 myflixdb 上运行的应用程序。我们的系统设计师要求我们将页面上显示的记录数限制为每页 20 条记录,以应对缓慢的加载时间。我们如何实现满足此类用户要求的系统?在这种情况下,LIMIT 关键字非常有用。我们可以将查询返回的结果限制为每页仅 20 条记录。

总结

  • LIMIT 关键字用于限制结果集返回的行数。
  • LIMIT 数字可以是从零 (0) 开始的任意数字。当将零 (0) 指定为限制时,结果集中不会返回任何行。
  • OFF SET 值允许我们指定从哪一行开始检索数据
  • 它可以与 SELECT、UPDATE 或 DELETE 命令 LIMIT 关键字语法结合使用