mysql 获取中文字符串长度
RTBZ在写一个区域的去重统计的sql的时候,遇到的中文字符串截取长度不对的问题。这是原始的数据,因为在做某项操作的时候会把region_name去掉最后面一个中文,然后取一个出来拿code做替换。问题来了,因为有多个区域,在region_name去掉最后面一个中文之后,是一样的,导致整个取出来的区域错误,所以这里需要做个统计,然后去掉不需要的区域。最开始想到的是mysql
·
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:返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符
更多推荐
已为社区贡献1条内容
所有评论(0)