mysql求長度的函數是length()函數和char_length()函數;其中length()函數可以返回以字節為單位的字符串的長度,而char_length()函數可以返回以字符為單位的字符串的長度。
MySQL中 char_length 函數與 length 函數都可以返回字符串的長度
mysql> select length('MySQL'), char_length('MySQL'); +-----------------+----------------------+ | length('MySQL') | char_length('MySQL') | +-----------------+----------------------+ | 5 | 5 | +-----------------+----------------------+ 1 row in set (0.01 sec)
兩個函數的功能:
-
LENGTH() 返回以字節為單位的字符串的長度。
-
CHAR_LENGTH() 返回以字符為單位的字符串的長度。
由上面的例子來看,“MySQL”共5個字符,每個字符應該是占1個字節。
而中文不一樣,一般一個漢字占2-3個字節。如:
GBK字符集編碼下:
select char_length(‘中國’); // 2個字符 select length(‘中國’); // 4個字節,一個漢字2個字節 select bit_length(‘中國’); // 32位。4*8 = 32
UTF8字符集編碼下:
select char_length(‘中國’);// 2個字符 select length(‘中國’); // 6個字節,一個漢字3個字節 select bit_length(‘中國’); // 48位。6*8 = 48
總結
char_length(str)
-
長度的單位為字符,一個多字節字符算作一個單字符
-
不管漢字還是數字或者是字母都算是一個字符
length(str)
-
utf8編碼下,一個漢字算三個字符,一個數字或字母算一個字符。
-
其他編碼下,一個漢字算兩個字符, 一個數字或字母算一個字符。
推薦教程:mysql視頻教程