Mysql函式length計算長度問題

2021-10-11 09:25:30 字數 913 閱讀 8267

在乙個專案中在統計字串長度的時候使用了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...