我的查询给出了以每个字母开头的类别数
SELECT SUBSTRING(headings.heading,1,1) AS first_letter, COUNT(*) AS cat_count
FROM TABLE a
INNER JOIN headings
ON a.Heading=headings.heading
GROUP BY first_letter
给我:
A - 5
B - 4
C - 4
D - 2
F - 10
G - 9
依此类推直到Z
但我还希望结果包含计数为 0 的字母。 例如。 E - 0
我猜这对 SQL 来说可能很棘手,因为我正在尝试获取不存在的内容。我必须在 PHP 中执行此操作吗?如果是这样,我有什么想法可以做到这一点吗?
最佳答案
如果您的表只有一个字段包含所有可能的结果(在您的情况下是 a-z),那么从该表到您的数据的左外连接..
例如FirstLetters 表:
Letter
------
A
B
C
..
Y
Z
然后你的查询会变成这样:
SELECT letter as first_letter, COUNT(a.heading) AS cat_count
FROM
FirstLetters l
left outer join
TABLE a
ON left(a.Heading,1)=l.letter
GROUP BY letter
抱歉,如果这个 si 不是 100% 正确的语法.. 最近没有使用 mysql
关于php - 如何计算以特定字母开头但仍包含 '0' 字母的类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27859027/