我有一个带有14个条目的表’Labs’。
查询SELECT COUNT(Labs.sid) FROM Labs LIMIT 0, 18446744073709551615返回“ 14”。
SELECT COUNT(Labs.sid) FROM Labs LIMIT 0, 18446744073709551615
但是查询SELECT COUNT(Labs.sid) FROM Labs LIMIT 1, 18446744073709551615返回“ 0”(不像我期望的那样为13)。实际上,当我设置LIMIT行偏移值2、3、4等时,仍然返回“ 0”。
SELECT COUNT(Labs.sid) FROM Labs LIMIT 1, 18446744073709551615
为什么是这样?有没有一种方法可以仅使用mysql确定指定偏移量后的行数?
FWIW我正在使用MySQL 5.5.9和InnoDB数据库引擎。
在执行计数后将应用限制。
尝试以下方法:
SELECT COUNT(sid) FROM ( SELECT sid FROM Labs LIMIT 2, 18446744073709551615 ) T1
请注意,在没有ORDER BY的情况下使用LIMIT是一个坏主意,因为您不能保证顺序是一致的,因此理论上每次都可以选择不同的行(如果sid可以为NULL,则很重要)。
sid