首页/数据/SQL 速查/LENGTH 与 CHAR_LENGTH 长度函数
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

LENGTH 与 CHAR_LENGTH 长度函数

计算字符串长度:MySQL 的 LENGTH 按字节、CHAR_LENGTH 按字符;PostgreSQL 的 length 按字符、octet_length 按字节,统计中文时容易踩坑。

SQL 速查数据更新于 2026-10-12

示例

示例
-- MySQL
SELECT LENGTH('你好')      AS bytes,   -- 6(utf8mb4 每字 3 字节)
       CHAR_LENGTH('你好') AS chars;  -- 2

-- PostgreSQL
SELECT length('你好')       AS chars,   -- 2
       octet_length('你好') AS bytes;  -- 6
MySQLLENGTH=字节数;CHAR_LENGTH / CHARACTER_LENGTH=字符数
PostgreSQLlength=字符数;octet_length=字节数;bit_length=位数
用途校验超长、截断前判断、估算存储占用
MySQL 的 VARCHAR(N) 中的 N 指字符数,和 LENGTH() 的字节数不是一回事。

易错点

  • 用 LENGTH(col) <= 20 做“不超过 20 个字”的校验,在含中文时会误判(utf8mb4 一个汉字 3 字节)
  • 把 CHAR_LENGTH 与 LENGTH 混用,是统计中文长度出错的高频原因:前者按字符、后者按字节

数据来源与参考

  • MySQL 8.0 Reference Manual · String Functions
  • PostgreSQL Documentation · String Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌