MySQL中的字符统计函数
MySQL中统计字符串中字符个数的两个函数:
- char_length(
column_name
):计算单位是字符,不管是汉字还是字母都算是一个字符,例如:
select char_length('abcd1234你好')
-- 结果为:
10
- length(
column_name
):
对于length(column_name)
就比较特殊,它的计算单位是字节,例如使用utf8
编码时,一个汉字为三个字节,一个数字或者一个字母为一个字节;使用gbk
编码时,一个汉字为两个字节,一个数字或一个字母为一个字节,例如:
select length('你好abcd1234');
-- 结果为:
14
这里有一个小技巧,我们可以根据char_length(str)
和length(str)
是否相等来判断某个字段值是否包含非数字字母的其他值,例如中文值等,这是一个小技巧!
这里再给一个扩展:
在MySQL5.0.3
版本前后,varchar
类型大小的计算方式发生了变化,在5.0.3
版本之前,varchar
的计算方式为varchar(length(str))
,在5.0.3
版本之后,varchar
的计算方式变成了varchar(char_length(str))
。
如在5.0.3
版本之前,如果使用utf8
编码,varchar(20)
最多只能存6个汉字;
在5.0.3
版本之后,如果使用utf8
编码,varchar(20)
最多可以存20个汉字。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战