Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
COUNT返回总行数忽略MySQL中的限制,为什么?_Mysql_Count_Limit_Sql Limit - Fatal编程技术网

COUNT返回总行数忽略MySQL中的限制,为什么?

COUNT返回总行数忽略MySQL中的限制,为什么?,mysql,count,limit,sql-limit,Mysql,Count,Limit,Sql Limit,今天,当我编写一个复杂的查询时,我意外地发现,即使我在查询中设置了LIMIT,MySQL服务器也会返回COUNT的总行数 例如: SELECT COUNT(*) FROM `log` LIMIT 10; 输出: 5219 但是如果我不使用COUNT运行查询,它只返回10行。我的问题是, 当存在计数时,为什么MySQL会忽略限制 LIMIT用于返回总结果的一个子集,在您的情况下,结果仅为一行,因此没有影响LIMIT子句的目的是选择有限数量的记录,而count是聚合函数,它将返回聚合结果。同

今天,当我编写一个复杂的查询时,我意外地发现,即使我在查询中设置了
LIMIT
,MySQL服务器也会返回
COUNT
的总行数


例如:

SELECT COUNT(*) FROM `log` LIMIT 10;
输出:

5219

但是如果我不使用
COUNT
运行查询,它只返回10行。我的问题是,

当存在
计数时,为什么MySQL会忽略
限制


LIMIT
用于返回总结果的一个子集,在您的情况下,结果仅为一行,因此没有影响LIMIT
子句的目的是选择有限数量的记录,而
count
是聚合函数,它将返回聚合结果。同时使用
LIMIT
COUNT
没有任何意义,因为
LIMIT
可能会返回任意n个记录。

LIMIT
从未为我返回过随机行,结果总是按顺序返回,即使没有主键。@RoshanaPitigala这就是我说的原因,may。因为,根据文档,MySQL在某些情况下使用索引,而通常它更喜欢执行完整的表扫描