我正在制作一个站点地图。我有一个表,它将帖子与类别连接起来(2列:categoryId,postId)。总共有近9000个类别,我想计算每个类别中的帖子数量来预测分页的页数。我尝试为每个类别做9000 COUNT(*),但这太慢了(实际上是2小时)。我能做什么?感谢。
答案 0 :(得分:2)
使用GROUP BY功能
SELECT C, COUNT(*)
FROM TABLE
GROUP BY categoryId as C
答案 1 :(得分:1)
你必须按照这样的类别ID进行SELECT COUNT和GROUP:
SELECT C, COUNT(*) FROM yourtable GROUP BY categoryId as C
如果您只想要特定类别,请尝试使用WHERE categoryID = ?
在GROUP BY
答案 2 :(得分:0)
您可以将其计数并按类别ID
进行分组select Count(postid) as NumberOfPosts, categoryid from your_table group by categoryid
这很简单。
最佳解决方案是创建一个表格,您可以在其中保存真实统计信息并在创建帖子时增加它,或在删除帖子时减少它。
新强>
如果您想要某个类别,那么只需添加到查询categoryid=?
所以你的查询应该是
select Count(postid) as NumberOfPosts from your_table where categoryid=?
或者如果你想搜索多个类别,而不仅仅是这样做
select Count(postid) as NumberOfPosts, categoryid from your_table where categoryid in (1,2,3,4)
group by categoryid