首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 字符串長度函數:LENGTH vs CHAR_LENGTH

     編輯:MySQL 資料庫相關知識

MySQL 字符串長度統計:字節數 vs 字符數

中文環境下最易踩坑的點:**一個漢字在 UTF8MB4 佔 3~4 字節,但在業務邏輯中通常視為 1 個字符**。

函數對比表

函數回傳單位中文處理英文/數字別名
LENGTH(str)字節數3~4 字節1 字節—
CHAR_LENGTH(str)字符數1 字符1 字符CHARACTER_LENGTH()
BIT_LENGTH(str)二進制位數24~32 位8 位—

實例驗證

-- 假設欄位含 5 個雙字節字符(如 GBK 環境)
SELECT LENGTH(str), CHAR_LENGTH(str);
-- 結果:10, 5

實戰應用:驗證用戶名長度

-- 業務要求:用戶名至少 6 個字符(中英不限)
SELECT * FROM admin WHERE CHAR_LENGTH(username) < 6;

-- 若用 LENGTH(),英文用戶需 6 字節,中文用戶需 18 字節,邏輯不一致

總結建議

  • **業務長度校驗(用戶名、密碼、姓名等)**:一律用 CHAR_LENGTH()
  • **存儲空間估算、網絡傳輸計算**:用 LENGTH()
  • UTF8MB4 環境下,LENGTH() = CHAR_LENGTH() * 1~4,具體視字符集而定
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved