一尘不染

MySQL-一起使用COUNT和LIMIT函数

sql

我有一个带有14个条目的表’Labs’。

查询SELECT COUNT(Labs.sid) FROM Labs LIMIT 0, 18446744073709551615返回“ 14”。

但是查询SELECT COUNT(Labs.sid) FROM Labs LIMIT 1, 18446744073709551615返回“
0”(不像我期望的那样为13)。实际上,当我设置LIMIT行偏移值2、3、4等时,仍然返回“ 0”。

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

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


阅读 300

收藏
2021-03-08

共1个答案

一尘不染

在执行计数后将应用限制。

尝试以下方法:

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

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

2021-03-08