在MySQL中,CHARACTER_LENGTH()函数返回字符串的长度,以字符为单位。 CHARACTER_LENGTH()是CHAR_LENGTH()函数的同义词。 语法是这样的: CHARACTER_LENGTH(str) 其中str是返回长度的字符串。 例1 -基本用法 下面是一个基本用法的例子: SELECT CHARACTER_LENGTH('Cat'); 结果是这样的: +-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
| 3 |
+-------------------------+ 例2 -末尾有空格 注意,CHARACTER_LENGTH()在其计算中包含末尾空格(例如字符串末尾的空格)。 所以如果我们在前一个例子的末尾加上空格: SELECT CHARACTER_LENGTH('Cat '); 结果: +--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
| 4 |
+--------------------------+ 但是我们可以使用TRIM()函数或RTRIM()函数来删除后面的空格: SELECT
CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM'; 结果: +------+-------+
| TRIM | RTRIM |
+------+-------+
| 3 | 3 |
+------+-------+ 例3 -前面有空格 同样的概念也适用于前面空格。你可以使用TRIM或LTRIM: SELECT
CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM'; 结果:
+------+-------+
| TRIM | LTRIM |
+------+-------+
| 3 | 3 |
+------+-------+ 例4 -数据类型 无论字符串存储为什么数据类型,它都将返回相同的结果。这与LENGTH()函数形成对比,如果数据是以Unicode字符串存储的,那么LENGTH()函数将返回双倍的字符数。 在下面的例子中,ArtistName列使用varchar(255): SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit'; 结果:
+--------+
| Result |
+--------+
| 3 |
+--------+ 如果我们修改ArtistName列来使用Unicode: ALTER TABLE Artists
MODIFY COLUMN ArtistName VARCHAR(255) unicode; 并再次运行相同的查询: SELECT CHARACTER_LENGTH(ArtistName)
FROM Artists
WHERE ArtistName = 'Lit'; 我们仍然得到相同的结果: +--------+
| Result |
+--------+
| 3 |
+--------+ 但是,如果使用LENGTH()函数,结果将是6。这是因为Unicode字符串每个字符存储2个字节,LENGTH()函数返回以字节为单位测量的长度。 相关推荐:《mysql教程》 以上就是MySQL中CHARACTER_LENGTH()函数的用法详解的详细内容,更多请关注模板之家(www.mb5.com.cn)其它相关文章! |