【问题标题】:MySQL select specific amount and count all possibleMySQL选择特定数量并计算所有可能的
【发布时间】:2012-05-31 12:49:27
【问题描述】:

我认为这是一个简单的问题,但谷歌只给我选择和计算结果。

我想知道是否可以从有限制的表中选择并计算通常会受查询影响的所有行。

例如:

我在汽车表中有 100 行,我选择了前 20 行,我想在一个查询中计算汽车表中有多少辆汽车。

提前致谢

【问题讨论】:

    标签: mysql select count


    【解决方案1】:

    如果我理解您的需求(我理解是您想要有限查询的结果加上整个表中的行数),可以使用 SELECT 子查询或 @987654322 来完成@ 针对子查询。由于您只期望从计数查询返回一行,因此您可以使用笛卡尔连接(没有ON 子句)。然后,所有行的计数显示为每列的相同值。

    SELECT
      cars.*,
      carcount.numcars
    FROM
      cars
      JOIN (SELECT COUNT(*) AS numcars FROM cars) carcount
    LIMIT 20
    

    会产生类似的结果

    make     model     numcars
    ford     focus     100
    ford     model t   100
    ...
    ...
    20 rows, numcars always = 100
    

    【讨论】:

    • 这就是我要找的。谢谢
    【解决方案2】:

    使用SQL_CALC_FOUND_ROWS,然后使用FOUND_ROWS()函数:

    SELECT SQL_CALC_FOUND_ROWS * FROM ... LIMIT 100;
    SELECT FOUND_ROWS();
    

    【讨论】:

      猜你喜欢
      • 2021-04-23
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多