php - 计算 where 子句上每个值的 sql 结果

标签 php mysql sql

我有一个这样的表:

|编号 |姓名 |类别 |

我想计算一组给定类别的行数,我有一个类别数组,我想知道每个类别有多少行,我所做的是:

$cats = array(2,4,5,1,8,44,47);
foreach($cats as $cat){
  $res = mysql_fetch_assoc(mysql_quer('select count(ID) from item where CATEGORY='.$cat);
}

我还尝试了'select count(ID) from item where CATEGORY IN ('.implode(',',$cat).')'

但这给了我总数。
有没有办法在不循环的情况下获取每个类别的计数?使用 SQL。
我的 SGBD 是 MySQL

最佳答案

select count(ID), category 
from item 
     where 
       CATEGORY IN ('.implode(',',$cat).') 
group by category

关于php - 计算 where 子句上每个值的 sql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390784/

相关文章:

SQL - 计算日期率内的事件项目数

mysql - 从表中的外键映射值

javascript - 使用 ng-click 发布表单(旧方式),这是不好的做法吗?

php - 最后一个值没有出现在动态 php 数组中

php - 使用 PHP 和/或 Javascript 进行屏幕抓取?

javascript - 错误 : Overlay loading automatically (bootstrap) (laravel 5. 2)

php - 如何找到与模式 7 的 MySQL WEEK 函数等效的 PHP?

mysql - 仅计算男性用户的答案

mysql - 有效地组合两个 SQL 查询

php - 如何选择用户好友帖子和用户帖子