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