当前位置: 首页 > 面试题库 >

MySQL-一起使用COUNT和LIMIT函数

侯沈义
2023-03-14
问题内容

我有一个带有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数据库引擎。


问题答案:

执行计数后将应用限制。

尝试以下方法:

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

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



 类似资料:
  • 问题内容: 我想做的是对一列求和,但也要对它求和的行数进行计数,最大不超过5行。所以我的查询是: 我期望返回的是最多5个的COUNT(*)(我不能认为在我的代码逻辑中它将始终为5,因为它可能少于5个答案),总和 最多为 5行。 相反,我似乎得到的是匹配行的总数(用户为1)作为计数,以及这些行的得分总和。这些数字不会改变我是否把或者甚至是。 我相信在这种情况下会起作用的是 但这对于这样一个简单的查询

  • 问题内容: 可能是这样的: 我想要获得与关键字相关联的唯一产品ID的数量。同一产品可能与某个关键字相关联两次,甚至更多,但我希望每个产品ID仅计一次 问题答案: 采用

  • 问题内容: 在下面的查询中: 我们将从输出中得到多少结果,以及从哪里到哪里? 问题答案: 从记录#9开始到记录#26结束,它将返回18个结果。 首先从读取查询。首先,您要偏移8,这意味着您跳过了查询的前8个结果。然后限制为18。这意味着您考虑记录9、10、11、12、13、14、15、16 .... 24、25、26,它们总共为18条记录。 检查这个出来。 还有官方文件。

  • 问题内容: 我是MYSQL的新手,无法解决甚至在该论坛上回答太多,也无法识别此语句中的错误。我正在使用MYSQL数据库。 我有2个表:Ratemaster和Rates,客户可以在其中拥有1个具有不同费率的产品。因此,有一个重复的客户和产品字段,只有费率字段更改。现在,Table Ratemaster具有所有字段:id,客户代码,产品,费率,用户,而Table Rate仅具有:id,客户代码,费率,

  • 本文向大家介绍我们如何将MySQL DISTINCT子句与WHERE和LIMIT子句一起使用?,包括了我们如何将MySQL DISTINCT子句与WHERE和LIMIT子句一起使用?的使用技巧和注意事项,需要的朋友参考一下 通过在MySQL查询中将WHERE子句与DISTINCT子句一起使用,我们将基于一个条件,即MySQL返回结果集的唯一行。通过在MySQL查询中使用LIMIT子句和DISTIN

  • 问题内容: 我说的对吗? 将只计算非null吗? 将始终计算所有行吗?而且如果所有列都为空怎么办? 问题答案: 正确。COUNT(*)是表中的所有行,COUNT(Expression)是表达式仅非空的地方。 如果所有列均为NULL(表示您没有主键,那么这在规范化数据库中就不会发生)COUNT(*) 仍 返回所有插入的行。只是不要那样做。 您可以将*符号认为是“在表格中”而不是“在任何列中”。 这在