今天介绍两个函数:length()和char_length()
1. length()函数
定义
length()函数用于计算字符串的字节长度。
特点
- 它返回的是字符串所占用的字节数。
- 对于单字节字符(如ASCII字符),每个字符占用1个字节。
- 对于多字节字符(如UTF-8编码的中文字符),每个字符可能占用多个字节(通常是3或4个字节)。
示例
select length('hello'); -- 结果为5(每个字符1字节)
select length('hello '); -- 结果为6(其中空格同样占1字节)
select length('你好'); -- 结果为6(每个中文字符3字节)
select length('¥'); -- 结果为3(特殊字符如'¥',3字节)
2. char_length()函数
定义
char_length()函数用于计算字符串的字符长度。
特点
- 它返回的是字符串的实际字符数,而不是字节数。
- 不论字符还是单字节还是多字节,每个字符都被计为1。
示例
select char_length('hello'); -- 结果为5
select char_length('hello '); -- 结果为6
select char_length('你好'); -- 结果为2
select char_length('¥'); -- 结果为1
3. 两者区别
计算方式
- length()函数计算的是字符串的字节长度。
- char_length()函数计算的是字符串的字符长度。
适用场景
- 如果你需要知道字符串在存储或传输时占用的字节数,应该使用length()。
- 如果你需要知道字符串的实际字符数量(例如统计文章的字数),应该使用char_length()。