LENGTH()函数返回字符串的字节长度,如SELECT LENGTH('hello')返回5,SELECT LENGTH('你好')在utf8mb4下返回6;CHAR_LENGTH()返回字符数,如CHAR_LENGTH('你好')返回2;常用于验证字段长度,如限制用户名不超过20字符:SELECT * FROM users WHERE CHAR_LENGTH(username)

在 MySQL 中,可以使用 LENGTH() 函数来计算字符串的字节长度。
LENGTH() 函数说明
LENGTH(str) 返回字符串 str 的字节长度,不是字符数。对于单字节编码(如 latin1),一个字符占一个字节;但在 UTF-8 编码中,中文或特殊字符通常占多个字节。
例如:
SELECT LENGTH('hello'); -- 返回 5
SELECT LENGTH('你好'); -- 在 utf8mb4 下返回 6(每个汉字占3字节)
CHAR_LENGTH() 与 LENGTH() 的区别
如果关心的是字符个数而非字节长度,应使用 CHAR_LENGTH():
- LENGTH('你好') → 6(字节)
- CHAR_LENGTH('你好') → 2(字符)
实际应用场景
常用于验证字段内容长度是否符合要求,比如限制用户名不超过20个字符:
SELECT * FROM users WHERE CHAR_LENGTH(username)
或检查某字段存储的文本是否为空或仅有空格:
SELECT * FROM messages WHERE LENGTH(TRIM(content)) = 0;
基本上就这些,根据字符集和需求选择 LENGTH 或 CHAR_LENGTH 更合适。










