簡體   English   中英

計算where子句中每個值的sql結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM