在乙個專案中在統計字串長度的時候使用了length函式來判斷當前字串是否過長,結果發現不太好用。
在檢視mysql的docment之後,發現是自己用錯了。包含中文字元的應該要使用char_length函式來處理。
在mysql中的字串長度函式有
length和 **_length(例如bit_length,char_length,json_length)
我們先看下官方文件對函式的說明:兩個函式的區別比較簡單
length() :return the length of a string in bytes
char_length() : return number of characters in argument
函式說明:
char_length(str)
returns the length of the string str, measured in characters.
a multibyte character counts as a single character.
this means that for a string containing five 2-byte characters, length() returns 10, whereas char_length()returns 5.
簡單的翻譯就是char_length以字元characters為單位,length是位元組byte為單位。根據編碼規格,中文一般都是佔3個位元組。
所以使用length計算中文字元的時候是會出問題的。
簡單總結下:
1、如果有中文,用char_length;
2、如果是純粹的英文,用length;
個人建議最好用char_length。
遇到問題並不可怕,只要找對應的文件翻翻就好了。
mysql中的length函式相關
引用 在mysql中length是計算欄位的長度乙個漢字是算三個字元,乙個數字或字母算乙個字元了,與char length是有一點區別,本文章重點介紹第乙個函式。mysql裡面的length函式是乙個用來獲取字串長度的內建函式。具體用法示例如下 1 檢視某字串的長度 比如本站 select leng...
函式length屬性
函式的length屬性指明函式的形參個數。length是函式物件的乙個屬性值,指該函式有多少個必須要傳入的引數,即形參的個數。形參的數量不包括剩餘引數個數,僅包括第乙個具有預設值之前的引數個數。與之對比的是,arguments.length是函式被呼叫時實際傳參的個數。function構造器本身也是...
mysql中length字元長度函式使用方法
引用 在mysql中length是計算欄位的長度乙個漢字是算三個字元,乙個數字或字母算乙個字元了,與char length是有一點區別,本文章重點介紹第乙個函式。mysql裡面的length函式是乙個用來獲取字串長度的內建函式。具體用法示例如下 1 檢視某字串的長度 比如本站 select leng...