MySQL 类别计数

Posted

技术标签:

【中文标题】MySQL 类别计数【英文标题】:MySQL Category Count 【发布时间】:2013-07-09 16:14:31 【问题描述】:

我正在尝试制作一个搜索过滤器,以显示带有项目计数的类别。我有一个类别/职位关系表如下

entry_id | cat_id
------------------
    1    |   1
------------------
    1    |   3
------------------
    2    |   1
------------------
    3    |   2
------------------
    3    |   3
------------------

我要做的是显示每个类别的帖子总数。我已经设法实现了一个绝对解决方案,其中一个明确的总输出显示如下:

SELECT count(entry_id) as count FROM cat_rel_table WHERE cat_id = $i;

我想要实现的是一个更相关的计数,它计算有多少项目被归类在所有“活动”类别中。所以我想指定多个 cat_id。它将计算有多少项目被归类在这些类别下。类似这样的东西:

SELECT count(entry_id) as count FROM cat_rel_table WHERE cat_id IN(1, 3);

但前提是一个类别有一个项目也属于另一个活动类别。

【问题讨论】:

您如何确定一个类别是否“活跃”? 【参考方案1】:

使用 GROUP BY。

SELECT count(entry_id) as count, cat_id 
FROM cat_rel_table 
WHERE cat_id IN(1, 3) 
GROUP BY cat_id

然后您可以修改 IN() 子句以过滤“活动”类别。

【讨论】:

【参考方案2】:

我相信您正在寻找“分组依据”子句。

http://www.w3schools.com/sql/sql_groupby.asp

【讨论】:

以上是关于MySQL 类别计数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 计数和 IFNULL

具有子句mysql的嵌套计数?

mySQL 中的完全外连接计数

创建性能计数器 PowerShell:指定类别的计数器布局无效

每个月内选择 DISTINCT 计数条​​目。 MYSQL

MySQL group_concat 和计数