哪个函数是 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)