代码之家  ›  专栏  ›  技术社区  ›  CheeseFlavored

MySQL结合两个查询得到两个计数

  •  0
  • CheeseFlavored  · 技术社区  · 6 年前

    “我的表”包含每个项目都有一个类别号。我有一个很好的查询,它统计了在每个类别中找到的许多项。如果我在搜索“奶酪”这个词

    $result=mysql_query("SELECT category, COUNT(*) AS 'itemcount' 
                         FROM mytable 
                         WHERE title like '%cheese%' 
                         GROUP BY category 
                         order by itemcount")
    

    现在我有了一个所有有“奶酪”的分类号的列表,以及每个分类中有多少奶酪。我还使用第二个查询来计算“奶酪”项目的总数。有没有办法把所有的itemcounts相加得到总数,而不是进行第二次查询…所以只需要一次查询?

    `

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nick SamSmith1986    6 年前

    您可以添加 WITH ROLLUP 给你的 GROUP BY 子句,这将在表的末尾提供一个额外的行(带有 NULL 类别的值),其中包含奶酪项目的总数,例如。

    $result=mysql_query("SELECT category, COUNT(*) AS 'itemcount' 
                         FROM mytable 
                         WHERE title like '%cheese%' 
                         GROUP BY category WITH ROLLUP 
                         ORDER BY itemcount");
    

    category    itemcount
    restaurant          5
    hotel               2
    shop               11
    NULL               18