MySQL组合两个查询以获得两个计数

MySQL组合两个查询以获得两个计数,mysql,select,count,nested-queries,Mysql,Select,Count,Nested Queries,“我的表”包含每个项目都有一个类别号。我有一个很好的查询,它现在可以计算在每个类别中找到的许多项。如果我在搜索“奶酪”这个词 现在我有了一个所有有“奶酪”的类别编号的列表,以及每个类别中有多少奶酪的计数。我还使用第二个查询来计算“奶酪”项目的总数。有没有办法不进行第二次查询,而是将所有itemcounts相加以获得总数…因此只需要一次查询 `您可以在GROUP BY子句中添加一个带有ROLLUP的,这将在表的末尾为您提供一个额外的行(类别的NULL值),其中包含奶酪项目的总数,例如 $resul

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

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


`

您可以在
GROUP BY
子句中添加一个带有ROLLUP的
,这将在表的末尾为您提供一个额外的行(类别的
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

您可以在
GROUP BY
子句中添加一个
WITH ROLLUP
,这将在表的末尾为您提供一个额外的行(类别值为
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