<p>CHAR_LENGTH函数用于计算字符串字符数,返回整数,支持MySQL、PostgreSQL等数据库。其语法为CHAR_LENGTH(string),string可为列名、常量或表达式,统计时包含空格与标点。例如CHAR_LENGTH(‘Hello 世界’)结果为9,因含5字母、1空格、2汉字。与LENGTH不同,CHAR_LENGTH按字符计数,LENGTH按字节计数,处理中文时差异显著:CHAR_LENGTH(‘你好’)返回2(两字符),而LENGTH(‘你好’)返回6(UTF-8下每汉字3字节)。该函数常用于筛选特定长度数据,如查询用户名少于6字符的记录:SELECT username FROM users WHERE CHAR_LENGTH(username) < 6;也可结合TRIM判断内容是否为空白:SELECT * FROM articles WHERE CHAR_LENGTH(TRIM(content)) = 0,有效识别仅含空格的内容。在多语言环境下,CHAR_LENGTH比LENGTH更直观准确,便于掌握文本规模。</p>

CHAR_LENGTH函数用于计算字符串中的字符数量,返回值是一个整数。它在MySQL、PostgreSQL等数据库中广泛支持,尤其适合处理包含中文、英文、数字或特殊符号的文本字段。
CHAR_LENGTH基本语法
函数的基本结构如下:
CHAR_LENGTH(string)
其中string可以是列名、字符串常量或表达式。该函数会统计所有字符,包括空格和标点符号。
示例1:计算固定字符串长度
SELECT CHAR_LENGTH(‘Hello 世界’);
结果为9,因为“Hello”5个字母+1个空格+“世界”2个汉字共9个字符。
与LENGTH函数的区别
CHAR_LENGTH按字符计数,而LENGTH按字节计数。这一点在处理多字节字符(如中文)时尤为明显。
示例2:对比两种函数结果
SELECT
CHAR_LENGTH(‘你好’) AS char_len,
LENGTH(‘你好’) AS byte_len;
char_len为2(两个汉字字符),byte_len通常为6(UTF-8编码下每个汉字占3字节)。
在查询中使用CHAR_LENGTH筛选数据
常用于查找特定长度范围的内容,比如用户名长度限制、标题过短检测等。
示例3:查询用户名少于6个字符的用户
SELECT username FROM users
WHERE CHAR_LENGTH(username) < 6;
示例4:检查内容是否为空或仅含空格
SELECT * FROM articles
WHERE CHAR_LENGTH(TRIM(content)) = 0;
TRIM去除首尾空格后判断字符长度是否为0,可有效识别空白内容。
基本上就这些。用好CHAR_LENGTH能帮你准确掌握文本数据的字符规模,特别是在混合语言环境下比LENGTH更直观可靠。
mysql 编码 字节 多语言 区别 字符串常量 sql mysql String 常量 select 字符串常量 字符串 Length postgresql 数据库


