我有以下用户数据库,每个用户都可以在不同级别上讲不同的语言。
id langs
12 EN-21
36 EN-2,RU-3
41 EN-9
57 DE-35,EN-28
60 DE-9,RU-14
我想创建 MySQL 查询来计算每种语言的出现次数,而不管其级别。所需的选项卡应如下所示:
lang count
EN 4
DE 2
RU 2
我已经尝试过不同的组合,但它远非完美。
SELECT
DISTINCT SUBSTRING_INDEX(langs, '-', 1) AS lang,
-- COUNT(langs) as count
-- SUM(
-- (SELECT DISTINCT SUBSTRING_INDEX(langs, '-', 1)
-- FROM people
-- WHERE langs != '')
-- )
FROM people
WHERE langs != ''
-- GROUP BY lang
ORDER BY lang