php - 如何计算以特定字母开头但仍包含 '0' 字母的类别

标签 php mysql sql

我的查询给出了以每个字母开头的类别数

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/

相关文章:

php - SQL查询删除多个表并从多个表中选择

php - 如何在数据库中写入字符

mysql - 使用express显示node mysql结果

php - 为什么我在 Moodle 3.3 中出现 SQL 语法错误?

php - 如果现有范围内不存在给定数字,则插入记录

PHP如何反转数字的比例

php - 为什么要使用 CakePHP 的 HTML Helpers?

php - 如何使用 JOIN 和 GROUP BY 从两个表中计数

sql - plpgsql - 通过返回结果集自动检测列类型

mysql - 删除 SQL 表中的额外\in XML 列