我有一个列(varchar),其中包含用“-”分隔的单词。
表示例:
ID | 蛞蝓 |
---|---|
1 | 姓名1-姓名2-姓名3-姓名4-姓名5 |
2 | 姓名6-姓名2-姓名3-姓名4-姓名7 |
计算单词及其出现次数的最佳方法是什么?
预期结果:
单词 | 数数 |
---|---|
姓名1 | 1 |
姓名2 | 2 |
姓名3 | 2 |
姓名4 | 2 |
姓名5 | 1 |
姓名6 | 1 |
姓名7 | 1 |
我尝试了这个查询,它在包含超过 22 万条记录的表上运行速度很快,但不确定这是否正确(计数正确与否)
SELECT
SUBSTRING_INDEX(slug,'-',-1) AS word,
count(SUBSTRING_INDEX(slug,'-',-1)) as count
FROM table_name
GROUP BY word
小提琴
“最好”的方法是正确标准化您的数据。
然后,您的要求变成一个简单的“分组依据”查询: