如 MySQL 开发站点中给出的 -
BIT_LENGTH(str) -
返回字符串 str 的长度(以位为单位)。
长度(str) -
返回字符串 str 的长度,以字节为单位。一个多字节字符计为多个字节。
一些样本结果 -
SELECT BIT_LENGTH(_utf8mb4 "Hello") AS output;
+--------+
| output |
+--------+
| 40 |
+--------+
SELECT LENGTH(_utf8mb4 "Hello") AS output;
+--------+
| output |
+--------+
| 5 |
+--------+
所以第一个结果是位,第二个是字节,8 位 = 1 个字节。
因此,结果 1 = 8 * 结果 2;
再次,
SELECT BIT_LENGTH(_ucs2 "Hello") AS output;
+--------+
| output |
+--------+
| 48 |
+--------+
SELECT LENGTH(_ucs2 "Hello") AS output;
+--------+
| output |
+--------+
| 6 |
+--------+
在这里,result1 = 8 * result2;
所以这两个函数之间的区别只是 BIT_LENGTH(str) 以位返回结果,而 LENGTH(str) 以字节返回结果,
还是有更多的区别?