为什么在MySQL SELECT语句中甚至允许“ LIMIT 0”?

如您所知,如果在MySQL SELECT语句中使用LIMIT 0,它将返回一个空集。

当您要从结果中指定行数而不是整个行时,可以使用LIMIT。如果使用任何MySQL API,那么LIMIT的工作就是获取结果列的类型。

LIMIT 0可用于检查查询的有效性。有关更多详细信息,请使用以下链接-

https://dev.mysql.com/doc/refman/8.0/en/limit-optimization.html

这是LIMIT 0的演示。创建表的查询如下-

create table Limit0Demo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> PRIMARY KEY(Id)
   -> );

现在,您可以使用insert命令在表中插入一些记录。查询如下-

insert into Limit0Demo(Name) values('David');
insert into Limit0Demo(Name) values('Larry');
insert into Limit0Demo(Name) values('Carol');
insert into Limit0Demo(Name) values('Bob');
insert into Limit0Demo(Name) values('John');
insert into Limit0Demo(Name) values('Sam');
insert into Limit0Demo(Name) values('James');
insert into Limit0Demo(Name) values('Maxwell');
insert into Limit0Demo(Name) values('Ricky');
insert into Limit0Demo(Name) values('Adam');

现在,您可以使用select语句显示表中的所有记录。查询如下-

select *from Limit0Demo;

以下是输出-

+----+---------+
| Id | Name    |
+----+---------+
|  1 | David   |
|  2 | Larry   |
|  3 | Carol   |
|  4 | Bob     |
|  5 | John    |
|  6 | Sam     |
|  7 | James   |
|  8 | Maxwell |
|  9 | Ricky   |
| 10 | Adam    |
+----+---------+
10 rows in set (0.00 sec)

情况1:使用限制0。

查询如下-

select *from Limit0Demo limit 0;
Empty set (0.00 sec)

情况2:当您要从表中获得特定的行数时。查询如下-

select *from Limit0Demo limit 3;

以下是输出-

+----+-------+
| Id | Name  |
+----+-------+
|  1 | David |
|  2 | Larry |
|  3 | Carol |
+----+-------+
3 rows in set (0.00 sec)