【MySQL】字符串操作函数之length和char_length

版权声明:本文为博主原创文章,未经博主允许不得转载。谢谢您的关注... https://blog.csdn.net/u013948858/article/details/85268497

官网地址: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;

猜你喜欢

转载自blog.csdn.net/u013948858/article/details/85268497