MySQL LENGTH()函数如何测量字符串长度

MySQL LENGTH()函数如何测量字符串长度

MySQL LENGTH()函数以“字节”为单位测量字符串长度,这意味着它不支持多字节安全。对于多字节安全函数,如CHAR_LENGTH()或CHARACTER_LENGTH(),与LENGTH()函数之间的结果差异尤其相关,特别是对于Unicode,在其中大多数字符编码为2个字节或对于UTF-8,其中字节数量不同。例如,如果一个字符串包含四个2字节字符,则LENGTH()函数将返回8,而CHAR_LENGTH()或CHARACTER_LENGTH()函数将返回4。下面是一个示例 −

阅读更多:MySQL 教程

示例

mysql> Select LENGTH('tutorialspoint');
+--------------------------+
| LENGTH('tutorialspoint') |
+--------------------------+
|                       14 |
+--------------------------+
1 行记录(0.00秒)

上面的结果集显示字符串“tutorialspoint”的长度为14,因为它尚未转换为Unicode字符。以下查询将其转换为Unicode字符 −

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
查询成功,0行记录受影响(0.02秒)

将字符串转换为Unicode后,结果为28,而不是14,因为在Unicode中,单个字符占用2个字节,如下所示 −

mysql> Select LENGTH(@A);
+------------+
| LENGTH(@A) |
+------------+
|         28 |
+------------+
1 行记录(0.00秒)

但CHAR_LENGTH()的结果为14,因为它是多字节安全函数,如下所示 −

mysql> Select CHAR_LENGTH(@A);
+-----------------+
| CHAR_LENGTH(@A) |
+-----------------+
|              14 |
+-----------------+
1 行记录(0.00秒)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程