-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46583
- shell命令
-
- 文章:(42)篇
- 阅读:154296
- Git教程
-
- 文章:(36)篇
- 阅读:234923
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131946
-
mysql中计算字符串长度函数2017-12-26 19:48 阅读(6939) 评论(0)
虽然大多的时候,我们不会直接在sql语句中计算字符串的长度,而是直接取出数据在去判断,毕竟数据库的操作往往是瓶颈,但是有的时候,我仅仅是想看看某条数据中某个字段的长度,就需要对sql中判断字段的长度函数有所了解。mysql中提供了length() 和 char_length()函数以及bit_length函数来处理字符长度,当三个函数还是有区别的,区别主要在于对中文的处理上面:
一、GBK 编码
char_length 1个中文字符代表一个长度,比如 char_lenth("你好") 长度为2, char_lenth("hello"),长度为5
length 1个中文字符需要两个字节,代表2个长度,比如 char_lenth("你好") 长度为4, char_lenth("hello"),长度为5
bit_length 1个中文字符需要两个字节,一个字节占8位,即一个字符代表16个长度,比如 char_lenth("你好") 长度为32, char_lenth("hello"),长度为40
一、utf8 编码
char_length 1个中文字符代表一个长度,比如 char_lenth("你好") 长度为2, char_lenth("hello"),长度为5
length 1个中文字符需要三个字节,代表3个长度,比如 char_lenth("你好") 长度为6, char_lenth("hello"),长度为5
bit_length 1个中文字符需要三个字节,一个字节需要8位,即一个中文代表24个长度,比如 char_lenth("你好") 长度为48, char_lenth("hello"),长度为40
在utf8环境下: