跳到主要内容

CHAR_LENGTH

描述

CHAR_LENGTH 函数用于计算字符串的字符数(而非字节数)。对于多字节字符(如中文),返回的是字符个数。

目前仅支持 UTF-8 编码。

别名

  • CHARACTER_LENGTH

语法

CHAR_LENGTH(<str>)

参数

参数说明
<str>需要计算字符长度的字符串。类型:VARCHAR

返回值

返回 INT 类型,表示字符串的字符数。

特殊情况:

  • 如果参数为 NULL,返回 NULL
  • 空字符串返回 0
  • 多字节 UTF-8 字符每个字符计数为 1

示例

  1. 英文字符
SELECT CHAR_LENGTH('hello');
+----------------------+
| char_length('hello') |
+----------------------+
| 5 |
+----------------------+
  1. 中文字符(每个汉字算一个字符)
SELECT CHAR_LENGTH('中国');
+----------------------+
| char_length('中国') |
+----------------------+
| 2 |
+----------------------+
  1. NULL 值处理
SELECT CHAR_LENGTH(NULL);
+--------------------+
| char_length(NULL) |
+--------------------+
| NULL |
+--------------------+
  1. 与 LENGTH 函数对比(LENGTH 返回字节数)
SELECT CHAR_LENGTH('中国') AS char_len, LENGTH('中国') AS byte_len;
+----------+----------+
| char_len | byte_len |
+----------+----------+
| 2 | 6 |
+----------+----------+