Limit 0, 1000
会返回前1,000个结果,但LIMIT 0
会返回0个结果。
这不是非常直观的imho。例如,愚蠢的老我认为删除1000将删除SELECT查询的上限,从而返回所有结果。
为什么有人甚至想要查询MySQL的0结果?
答案 0 :(得分:26)
LIMIT 0快速返回空集。这对于检查查询的有效性非常有用。使用其中一个MySQL API时,它也可用于获取结果列的类型。
答案 1 :(得分:0)
*如果我在这里不正确,欢迎并赞赏礼貌的更正,但是:
我的理解是,对于给定的条件,LIMIT 0,1000告诉SQL您要从给定数据库中的第一组1000个结果开始。例如,如果数据集中有10,000个结果行,则LIMIT 0,1000将显示第一组1000个结果。零就像JavaScript中数组的索引 - 当引用数组项时,代码以零而不是一个开始ITS计数。因此,项目#1实际上是项目#0,项目#2实际上是项目#1,依此类推。
答案 2 :(得分:0)
除了已经给出的答案之外,当您想根据该表中存在的行数对表进行操作时,它也很有用。
即。使用PHP,如果你想要删除除表格中#cn最大的那个条目以外的所有条目" myTable":
<?php
$con = mysqli_connect("hostname", "username", "password", "database"); // Connect
$totalRows = mysqli_query($con, "SELECT COUNT(*) FROM myTable"); // Get total row count
$mysqli_query($con, "DELETE FROM myTable WHERE id >= 0 LIMIT ($totalRows - 1);"); // Delete
?>
这非常有用,因为如果你只剩下1行,那么你就会留下LIMIT 0
,这就是你想要的。
答案 3 :(得分:0)
limit 0
可用于获取其他表的相同列类型
create table newtable
select col1 from table1 limit 0;
这样,就不需要对newtable
的列类型进行硬编码的描述,从而确保即使在创建{之前table1
的描述发生了变化,列类型仍将匹配。 {1}}
它还可以处理更完整的语句,包括索引,引擎,多个表等
newtable