萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql length()中文長度一些問題整理

mysql length()中文長度一些問題整理

在mysql中length()函數對於中文的長度與編碼是一些關系了,不同編碼一個中文漢字的長度會不一樣,下面我們一起來看看length()函數對中文的一些測試例子。

在數據庫裡用length()來取數據長度的時候漢字有點小問題。

查看到一站長是這樣理解length函數的

一句話說明: 獲取字符串長度的mysql內置函數

length是mysql的一個用來來獲取字符串長度的內置函數方法, 同樣的獲取字符串長度的還有char_length. length: 是計算字段的長度, utf8編碼下,www.111cn.net一個漢字是算三個字符,一個數字或字母算一個字符。其他編碼下,一個漢字算兩個字符, 一個數字或字母算一個字符。

例子1: 查看mysql字符串的長度 SELECT LENGTH("要查看長度的mysql字段/mysql字符串");

例子2: 根據記錄的某個字段長度排序 SELECT * FROM table WHERE 1 ORDER BY LENGTH(name) ASC;

相關: char_length:在任何編碼下, 不管漢字還是數字或者是字母都算是一個字符. CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同義詞。 BIT_LENGTH(str) 返回2進制長度.

詳情說明

mysql:

utf-8 :length()一個漢字3個長度

gbk : length()一個漢字2個長度

oracle:

utf-8 :length()一個漢字3個長度

gbk : length()一個漢字1個長度

字母和數字都是1個長度

char_length()漢字、字母、數字都是1個長度   PHP:mb_strlen($str,'utf8')

查詢字符長度可以用

select length('漢') from dual

下面是補充說明length與char_length區別

length:是計算字段的長度一個漢字是算三個字符,一個數字或字母算一個字符
char_length:不管漢字還是數字或者是字母都算是一個字符

copyright © 萬盛學電腦網 all rights reserved