[英]count sql results for each value on where clause
我有一張這樣的桌子:
| ID | NAME | 類別|
我想為給定的一組類別計算行,我有一組類別,並且我想知道每個類別有多少行,我所做的是:
$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
試試這個sql:
SELECT count(ID) FROM item WHERE category IN (...) GROUP BY category
碼:
$cats = array(2,4,5,1,8,44,47);
$ret = mysql_query('SELECT category, count(ID) as count FROM item WHERE category IN ('.join(',', $cats).') GROUP BY category');
if (!$ret) {
die(mysql_error());
}
$results = array();
while($row = mysql_fetch_assoc($ret)) {
$results[$row['category']] = $row['count'];
}
var_dump($results);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.