mysql 字符串函数 之 LENGTH函数 CHAR_LENGT函数

兄弟听我一句劝,游戏没了还能重玩,媳妇没了游戏就能一直玩了。

 

mysql 之中,对字符串函数进行长度查询的函数有三个 

  • LENGTH
  • CHAR_LENGT

虽然都是对函数的查询,但是也有一些区别

1、LENGTH函数

此函数是按照字节来统计字符串长度,主要用来计算普通字符的长度,他会把一个中文字符的长度按照设置的对应的字符集计算,计算为2或者3

  1. utf8字符集编码下,一个汉字是算三个字符,一个数字或者字母算一个字符;
  2. 其他编码下,一个汉字算两个字符,一个数字或者字母算一个字符;

 

2、CHAR_LENGT函数

此函数是按照字节来统计字符串长度,因此可以计算unicode字符,包括中文等字符集的长度

  1. 返回值为字符串string或者对应的字段长度,长度的单位为字符,一个多字节字符算作一个单字符;
  2. 不管是汉字还是数字,还是字母都算一个字符;
  3. 在任何编码下,多字节字符都算着一个字符;

 

举例子说明:

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 , (一个汉字算着一个字符)

 

 

 

posted @ 2021-11-18 08:56  方达达  阅读(407)  评论(0编辑  收藏  举报