方法:1、利用length()函數(shù)查詢,單位是字節(jié),一個漢字是三個字節(jié),數(shù)組和字母是一個字節(jié),語法為“l(fā)ength(字符)”;2、利用“char_length()”函數(shù)查詢,單位為字符,漢字、數(shù)字和字母都是一個字符單位。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysql怎樣查詢字符長度
先了解一下,Mysql中l(wèi)ength()、char_length()的區(qū)別。
1)、length():mysql里面的length()函數(shù)是一個用來獲取字符串長度的內(nèi)置函數(shù)。
2)、char_length():在mysql內(nèi)置函數(shù)里面查看字符串長度的還有一個函數(shù)是char_length()。
3)、這兩個函數(shù)的區(qū)別是:
a)、length(): 單位是字節(jié),utf8編碼下,一個漢字三個字節(jié),一個數(shù)字或字母一個字節(jié)。gbk編碼下,一個漢字兩個字節(jié),一個數(shù)字或字母一個字節(jié)。
b)、char_length():單位為字符,不管漢字還是數(shù)字或者是字母都算是一個字符。
擴展一下,MySQL5.0.3版本之后varchar類型的變化。
1)、MySQL 5.0.3 之前:0–255字節(jié),如:varchar(20)中的20表示字節(jié)數(shù),如果存放utf-8編碼的話只能放6個漢字。varchar(n),這里的n表示字節(jié)數(shù)。
MySQL 5.0.3 之后:0–65535字節(jié),varchar(20)表示字符數(shù),不管什么編碼,既漢字也能放20個。但最多占65532字節(jié)(兩個字節(jié)存放長度,小于255字節(jié)用1個字節(jié)存放長度),varchar(n)這里的n表示字符數(shù),比如varchar(200),不管是英文還是中文都可以存放200個。其他具體區(qū)別,可自行網(wǎng)上查詢。
4、length()<>char_length(),可以用來檢驗是否含有中文字符。
utf-8編碼中判定某個字段為全英文,length(字段) = char_length(字段)即可。
推薦學(xué)習(xí):mysql視頻教程