MySQL select statement for querying records grouped by first character of value
SELECT case when
SUBSTRING( UPPER(`title`) from 1 for 1) between '0' and '9' then
'0-9' else SUBSTRING( UPPER(`title`) from 1 for 1) end as letter,
count(title) AS occurences
FROM `tablename`
GROUP BY letter
ORDER BY letter;
Result:
letter |
occurence |
0-9 |
2 |
A |
1 |
D |
4 |
H |
5 |
M |
7 |
R |
2 |