MySQL获取字段中所有字符串长度及对应出现次数的方法
一次性获取所有字符串长度的出现次数
嗨,别再逐个长度重复查询啦!用一条SQL语句就能一次性拿到你想要的所有结果,效率高多了。
直接用GROUP BY按字符串长度分组统计就行,核心语句如下:
SELECT CHAR_LENGTH(myfield) AS str_length, COUNT(*) AS occurr FROM mytable GROUP BY str_length ORDER BY str_length;
语句细节解释:
CHAR_LENGTH(myfield):计算每条记录中myfield字段的字符长度(和你之前用的函数保持一致,如果需要统计字节长度可以换成LENGTH())COUNT(*):统计对应长度的记录行数GROUP BY str_length:按计算出的字符长度分组,把相同长度的记录聚合在一起ORDER BY str_length:让结果按长度从小到大排序,方便你按顺序查看
如果你的表中存在myfield为NULL的记录,CHAR_LENGTH(NULL)会返回NULL,最终结果里会单独出现一行str_length为NULL的统计。要是想过滤掉这类记录,可以加上WHERE条件:
SELECT CHAR_LENGTH(myfield) AS str_length, COUNT(*) AS occurr FROM mytable WHERE myfield IS NOT NULL GROUP BY str_length ORDER BY str_length;
这样执行一次就能得到所有长度对应的出现次数啦,不用再反复执行单独的查询~
内容的提问来源于stack exchange,提问作者dr_
相关产品推荐
相关产品推荐

