CHAR_LENGTH()和LENGTH()的區別

mysql中計算字符串長度有兩個函數分別爲char_length和length。char_length函數可以計算unicode字符,包括中文等字符集的長度,而length函數用來計算普通字符的長度,他會把一箇中文字符的長度按照設置的對應的字符集計算爲2或3。

    無論是LENGTH()還是CHAR_LENGTH()都是爲了統計字符串的長度。只不過,LENGTH()是按照字節來統計的,CHAR_LENGTH()是按照字符來統計的。例如:一個包含5個字符且每個字符佔兩個字節(比如漢字)的字符串而言,LENGTH()返回長度10,CHAR_LENGTH()返回長度是5;如果對於單字節的字符,則兩者返回結果相同。

一、char_length('string')/char_length(column_name)

1、返回值爲字符串string或者對應字段長度,長度的單位爲字符,一個多字節字符(例如,漢字)算作一個單字符;

2、不管漢字還是數字或者是字母都算是一個字符;

3、任何編碼下,多字節字符都算是一個字符; 


二、length('string')/length(column_name)

1、utf8字符集編碼下,一個漢字是算三個字符,一個數字或字母算一個字符。

2、其他編碼下,一個漢字算兩個字符, 一個數字或字母算一個字符。


參考:https://www.cnblogs.com/mucheng/p/7742691.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章