哪个函数是MySQL LENGTH()函数的同义词?

众所周知,MySQL OCTET_LENGTH()函数还以“字节”为单位测量字符串长度,因此,它是MySQLLENGTH()函数的同义词。该函数的语法为OCTET_LENGTH(Str),其中Str是一个字符串,必须返回其长度(以字符为单位)。

它也不是多字节安全的LENGTH()函数。例如,如果一个字符串包含四个2个字节的字符,则OCTET_LENGTH()函数将返回8。在下面的示例中进行了演示-

示例

mysql> Select OCTET_LENGTH('nhooo');
+--------------------------------+
| OCTET_LENGTH('nhooo') |
+--------------------------------+
|                             14 |
+--------------------------------+
1 row in set (0.00 sec)

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

mysql> SET @A = CONVERT('nhooo' USING ucs2);

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

mysql> Select OCTET_LENGTH(@A);
+------------------+
| OCTET_LENGTH(@A) |
+------------------+
|               28 |
+------------------+
1 row in set (0.00 sec)
猜你喜欢