SQL查询中,length()
和 char_length()
都是用来获取字符串长度的函数
在单字节字符集下(如ASCII):每个字符通常占用1个字节,因此length()
和char_length()
在这类字符集中给出的结果是一样
在多字节字符集下(如UTF-8):一个字符可能占用多个字节。例如,在UTF-8编码中,“中文”(一个汉字)通常会占用3个字节。在这种情况下,length()
函数返回的是字节数,而不是字符数。而 char_length()
函数返回的是字符的实际数量。
例如,如果有一个字符串 "你好"
在UTF-8编码下,每个汉字占用3个字节,因此总共有6个字节。那么:
length("你好")
将返回 6(字节数)char_length("你好")
将返回 2(字符数)