官网地址:https://dev.mysql.com/doc/refman/5.6/en/string-functions.html
lenght: https://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_length
char_length:https://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_char-length
语法:
length(str) 按字节返回长度
Returns the length of the string str
, measured in bytes. A multibyte character counts as multiple bytes. This means that for a string containing five 2-byte characters,LENGTH()
returns 10
, whereas CHAR_LENGTH()
returns 5
.
The Length()
OpenGIS spatial function is named GLength()
in MySQL.
返回字符串str的长度,以字节为单位。一个多字节字符算作多个字节。这意味着对于包含5个
2字节字符的字符串,LENGTH()返回10,而CHAR_LENGTH()返回5。
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
.
返回字符串str的长度,以字符表示。多字节字符算作一个字符。这意味着对于包含5个2字节字符的字符串,
LENGTH()返回10,而CHAR_LENGTH()返回5。
示例:
SELECT LENGTH("111"); -- 3
SELECT LENGTH("aaa"); -- 3
SELECT LENGTH("啊啊啊"); -- 9
SELECT CHAR_LENGTH("111"); -- 3
SELECT CHAR_LENGTH("aaa"); -- 3
SELECT CHAR_LENGTH("啊啊啊"); -- 3
应用:
需要计算表中某一个字段(string)的内容中某一个字符出现的次数
select count(*), sum(char_length(col_name) - char_length(REPLACE(col_name, 'A', ''))) from tableName;
解释:计算整体的长度然后减去字符A给转化后(就是删除掉)整体的长度,这个差就是A的个数。这个我们要注意length和char_length处理的方式。当替换的字符A是一个字符串(AAAA),那就需要除于字符串的长度。
select count(*), sum((char_length(col_name) - char_length(REPLACE(col_name, 'AAAA', '')))/4 + 1) from tableName;