如何按类别计算物品数量?

8
我希望在网站上实现产品过滤功能。像这样:
Department
- lassics (13,395)
- Literary (111,399)
- History (68,606)
...

Format
- HTML (3,637)
- PDF (8)
- Audio CD (443)
...

Language
- English (227,175)
- German (10,843)
- French (10,488)
...

如何按类别计算产品数量?每个类别都需要单独的SQL查询会很慢,因为有太多的产品和类别。我建议缓存也不是一个选项。也许使用MySQL EXPLAIN查询(虽然它并不总是提供足够的信息)是有意义的吗?或者使用sphinx搜索引擎进行计数?...最好的方法是什么?谢谢。

请查看相关帖子:https://dev59.com/pEjSa4cB1Zd3GeqPFXPT - Sachin Bhansali
3个回答

14

尝试:

SELECT category, COUNT(*) as count FROM table GROUP BY category

响应应该包含所有不同的category值,以及每个值出现的次数。


@fahim 给出了最好的答案,应该尽可能避免使用 (*) - Quiche

10

这个怎么样?

SELECT field1, count(1) as Total
FROM myTable
GROUP BY field1

1
这是最佳实践。如果可以使用其他方法,始终避免使用(*) - Quiche

5

使用 COUNT()GROUP BY 一起来按类别分组。


我知道SQL语法。但这不是问题所在。我担心的是性能。将会有近50万个项目,查询将会非常繁重,包含许多参数,因此计算需要很长时间。 - romvlads

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接