mysql 字符串函数 之 LENGTH函数 CHAR_LENGT函数
兄弟听我一句劝,游戏没了还能重玩,媳妇没了游戏就能一直玩了。
mysql 之中,对字符串函数进行长度查询的函数有三个
- LENGTH
- CHAR_LENGT
虽然都是对函数的查询,但是也有一些区别
1、LENGTH函数
此函数是按照字节来统计字符串长度,主要用来计算普通字符的长度,他会把一个中文字符的长度按照设置的对应的字符集计算,计算为2或者3
- utf8字符集编码下,一个汉字是算三个字符,一个数字或者字母算一个字符;
- 其他编码下,一个汉字算两个字符,一个数字或者字母算一个字符;
2、CHAR_LENGT函数
此函数是按照字节来统计字符串长度,因此可以计算unicode字符,包括中文等字符集的长度
- 返回值为字符串string或者对应的字段长度,长度的单位为字符,一个多字节字符算作一个单字符;
- 不管是汉字还是数字,还是字母都算一个字符;
- 在任何编码下,多字节字符都算着一个字符;
举例子说明:
user table
SELECT
LENGTH( NAME ) AS length,
CHAR_LENGTH( NAME ) AS char_length
FROM
`user`
WHERE
id = 1;
执行结果:
发现了结果不一样了吗?
因为length 函数是以字节进行统计的,字符串 "方达fang1",以字符的字节长度为: 3 + 3 + 4 + 1 = 11 (因为我的mysql设置的是utf8字符集,一个汉字占三个字符)
而 char_length 函数是以字符长度进行统计的,所以 字符 "方达fang1" 字符长度 : 1 + 1 + 4 + 1 = 7 , (一个汉字算着一个字符)