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个汉字。

posted @   LilyFlower  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示