在MySQL计算一行?

时间:2012-01-18 00:12:09

标签: php mysql database

如果我的桌子看起来像

(`id`, `category`, `content`, `post_time`)

我想计算类别WHERE(例如)post_time> '1326600000' 我希望数据显示如下:

categorys['cat_1'] = 4
categorys['cat_2'] = 2
categorys['cat_3'] = 1

我能想到这样做的唯一方法就是获取MySQL中的每一行。 创建类别列表。 然后将count(id)作为cat_count WHERE category ='category_from_list'

有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

  

有更好的方法吗?

是:

SELECT category,
       COUNT(1)
  FROM insert_table_name_here
 WHERE post_time > '1326600000'
 GROUP
    BY category
;

(MySQL实际上使GROUP BY子句成为可选项 - 如果同时选择categoryCOUNT(1),它将推断出GROUP BY子句 - 但无论如何都要包括它。)

答案 1 :(得分:0)

SELECT `category`,
       COUNT(`category`) as TotalCount
FROM `tableName`
WHERE post_time > '1326600000'
GROUP BY category