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 |