mysql 获取中文字符串长度

来源:互联网 发布:用c 计算矩阵特征值 编辑:程序博客网 时间:2024/05/16 19:07

RT

BZ在写一个区域的去重统计的sql的时候,遇到的中文字符串截取长度不对的问题。


这是原始的数据,因为在做某项操作的时候会把region_name去掉最后面一个中文,然后取一个出来拿code做替换。

问题来了,因为有多个区域,在region_name去掉最后面一个中文之后,是一样的,导致整个取出来的区域错误,所以这里需要做个统计,然后去掉不需要的区域。

最开始想到的是mysql的substring,但是用法不符合我的需求,我需要从左边开始,然后截取到字符串长度-1这儿。然后试了一把left,但是用left(region_name,length(region_name)-1)的时候,减的不对,-2也不对,-4更不对,-8就减多了。后面也百度了一下,用的chahr_length,解决。

原文链接:http://www.jb51.net/article/42771.htm


解释是:

length:返回字符串所占的字节数,是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
char_length:返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符


0 0