mysql获取字符串长度length函数和char_length函数的区别
程序员文章站
2022-06-23 12:07:58
先上结论:length函数:计算值的长度-但1个中文会算作长度3,1个数字或者字母-算作长度1;char_length函数:计算值的长度-但1个中文或者1个数字或者字母-都算作长度1;sql结果:所以:在统计无中文值的字段值长度时:length函数和char_length函数效果一样;有中文值时:最好使用char_length函数,免得出现误差;......
先上结论:
length函数:
计算值的长度-但1个中文会算作长度3,1个数字或者字母-算作长度1;
char_length函数:
计算值的长度-但1个中文或者1个数字或者字母-都算作长度1;
sql结果:
所以:
在统计无中文值的字段值长度时:
length函数和char_length函数效果一样;
有中文值时:
最好使用char_length函数,免得出现误差;
对了还有个用处:
通过length()<>char_length()可以用来检验是否含有中文字符
疑问:为什么length一个中文算作长度3?
查了些资料,发现大家都是只说了结论.但未提及原因;
正好最近也看些字符编码的东西;
所以大胆猜测:
length在统计长度时统计的是字符编码的字节长度;
而char_length函数则是直接统计的字符长度;
而造成大家结果的一致性的原因就是大家使用的都是utf-8编码;
所以:得到的结果就是都是一个中文3个长度;
附:编码的文章链接:
https://blog.csdn.net/weixin_44903702/article/details/110287013
个人猜测未证实,查源码也没找到…  ̄▽ ̄
有大佬知道的,还请指点指点小弟;
本文地址:https://blog.csdn.net/weixin_44903702/article/details/110288287
上一篇: pandas赋值失败问题解决
推荐阅读
-
字符串长度函数strlen和mb_strlen的区别示例介绍
-
Lua中获取utf8字符串长度的方法和自定义函数
-
mysql获取字符串长度length函数和char_length函数的区别
-
字符串长度函数strlen和mb_strlen的区别示例介绍,strlenmb_strlen_PHP教程
-
字符串长度函数strlen和mb_strlen的区别示例介绍_PHP
-
字符串长度函数strlen和mb_strlen的区别示例介绍
-
字符串长度函数strlen和mb_strlen的区别示例介绍,strlenmb_strlen_PHP教程
-
JS版获取字符串真实长度和取固定长度的字符串函数_javascript技巧
-
mysql length(获取字符串长度)函数实例分析
-
mysql length(获取字符串长度)函数实例分析