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