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
我的 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