“LIMIT 0, 1”和“LIMIT 1”之间有什么区别吗?

Gim*_*imu 22 mysql

我最近偶然发现了示例代码,它们因这些符号而有所不同。

SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1
Run Code Online (Sandbox Code Playgroud)

如果我没有错的话,第一个参数应该被视为偏移量,这两个查询的目的是将选择限制在第一行 table

忽略偏移量是否有任何负面影响/首先如何将其忽略?还是我误解了查询?

oNa*_*are 18

正如文档所说:

该 LIMIT 子句可用于限制SELECT 语句返回的行数 。 LIMIT 接受一个或两个数字参数,它们都必须是非负整数常量(使用准备好的语句时除外)。

有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。The offset of the initial row is 0 (not 1).

LIMIT子句在SELECT语句中用于限制结果集中的行数。该LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数常量。

下面说明了LIMIT带有 2 个参数的子句语法:

SELECT * FROM tbl
LIMIT offset, count;
Run Code Online (Sandbox Code Playgroud)

让我们看看 LIMIT 子句中偏移量和计数的含义:

  • offset指定的第一行的偏移回报。第一行的偏移量是 0,而不是 1。
  • count行指定最大数量返回。

当您使用LIMIT一个参数时,此参数将用于指定从结果集的开头返回的最大行数。

SELECT * FROM tbl LIMIT count;

上面的查询等效于以下带有LIMIT接受两个参数的子句的查询:

SELECT * FROM tbl LIMIT 0, count;

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