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

mysqlmysqli database

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

它也不像 LENGTH() 函数那样多字节安全。例如,如果一个字符串包含四个 2 字节字符,则 OCTET_LENGTH() 函数将返回 8。下面的示例演示了这一点 −

示例

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

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

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected (0.02 sec)

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

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

相关文章