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

MySQL Combining two queries to get two counts

我的 table 包含每个项目都有一个类别编号。我有一个很好的查询,现在可以计算它在每个类别中找到的许多项目。如果我正在搜索 "cheese"

这个词,它看起来像这样
$result=mysql_query("SELECT category, COUNT(*) AS 'itemcount' 
                     FROM mytable 
                     WHERE title like '%cheese%' 
                     GROUP BY category 
                     order by itemcount")

现在我有一个包含 "cheese" 的所有类别编号的列表以及每个类别中有多少个的计数。我还使用第二个查询来计算 "cheese" 项的总数。有没有一种方法可以将所有项目计数相加以获得总数,而不是进行第二次查询...所以只需要一个查询?

`

您可以在 GROUP BY 子句中添加 WITH ROLLUP,这会在 table 的末尾增加一行(具有 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