MySQL-同时使用计数和限制函数

MySQL-同时使用计数和限制函数,mysql,sql,database,Mysql,Sql,Database,我有一个包含14个条目的“实验室”表 查询从Labs LIMIT 018446744073709551615中选择COUNT(Labs.sid)返回“14” 但是,查询从Labs LIMIT 1 18446744073709551615中选择COUNT(Labs.sid)返回“0”(不是我预期的13)。事实上,当我设置限制行偏移值2、3、4等时,仍然返回“0” 为什么会这样?是否有一种方法可以仅使用mysql确定指定偏移量后的行数 FWIW我正在使用MySQL 5.5.9和InnoDB数据库引擎

我有一个包含14个条目的“实验室”表

查询
从Labs LIMIT 018446744073709551615中选择COUNT(Labs.sid)返回“14”

但是,查询
从Labs LIMIT 1 18446744073709551615中选择COUNT(Labs.sid)返回“0”(不是我预期的13)。事实上,当我设置限制行偏移值2、3、4等时,仍然返回“0”

为什么会这样?是否有一种方法可以仅使用mysql确定指定偏移量后的行数


FWIW我正在使用MySQL 5.5.9和InnoDB数据库引擎。

在执行计数后应用限制

请尝试以下方法:

SELECT COUNT(sid) FROM
(
    SELECT sid FROM Labs LIMIT 2, 18446744073709551615
) T1

请注意,在没有ORDER BY的情况下使用LIMIT是个坏主意,因为您不能保证顺序是一致的,因此理论上每次都可以选择不同的行(如果
sid
可以为空,这很重要)。

为什么不直接从
计数(*)中减去偏移量呢


如果你真的想变得聪明,你可以检查这是否给你一个否定的结果,在这种情况下,返回0。如果
Labs.sid
可以为空,这将给出不同的结果。
SELECT COUNT(Labs.sid) - 1 FROM ...