LENGTH函数返回字符串的字节数而非字符数,受字符集影响,在UTF-8中中文占3字节,如LENGTH('中国')返回6;而CHAR_LENGTH返回字符个数,如CHAR_LENGTH('中国')返回2,处理多语言数据时需根据需求选择合适函数。

LENGTH函数用于计算字符串中字符的字节数,常用于SQL和部分编程语言中。它返回的是字符串所占用的字节长度,而不是字符个数。在不同字符集下,结果可能不同。
LENGTH函数的基本用法
在SQL中,LENGTH函数的语法如下:
LENGTH(string)其中,string 是要计算长度的字符串或字段名。例如:
- SELECT LENGTH('hello'); -- 返回 5
- SELECT LENGTH('你好'); -- 在UTF-8中,每个中文字符占3字节,返回 6
- SELECT LENGTH(name) FROM users WHERE id = 1;
注意字符集对结果的影响
LENGTH函数计算的是字节长度,因此字符编码方式会影响结果:
- ASCII字符(如 a、1、!)每个占1字节
- UTF-8中,中文字符通常占3或4字节
- Latin-1编码中,LENGTH和字符个数一致
例如,在UTF-8环境下:
LENGTH('中国') 返回 6(每个汉字3字节)与CHAR_LENGTH的区别
如果想获取字符个数而非字节数,应使用CHAR_LENGTH函数:
- LENGTH('中国') → 6(字节长度)
- CHAR_LENGTH('中国') → 2(字符个数)
两者在处理英文时结果相同:
LENGTH('abc') = CHAR_LENGTH('abc') = 3基本上就这些。根据实际需求选择LENGTH或CHAR_LENGTH,特别是在处理多语言数据时要注意区别。










