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