MySQL版本:
Ver 8.0.34 for Win64 on x86_64 (MySQL Community Server - GPL)
BIT_LENGTH(str):返回字符串 str 的长度(以位为单位)。如果 str 为 NULL,则返回 NULL。
当我输入时:
select BIT_LENGTH('你好')/8;
我得到了:
+----------------------+
| BIT_LENGTH('你好')/8 |
+----------------------+
| 4.0000 |
+----------------------+
当我创建一个表并创建一个名为“Hello”的列,并插入“你好”时:
select Hello from chinese_test;
+-------+
| Hello |
+-------+
| NULL |
| NULL |
| NULL |
| 你好 |
+-------+
select LENGTH(Hello) from chinese_test;
select LENGTH(Hello) from chinese_test;
+---------------+
| LENGTH(Hello) |
+---------------+
| NULL |
| NULL |
| NULL |
| 6 |
+---------------+
那么,为什么我从 BIT_LENGTH 函数中得到 2 个字节。我用谷歌搜索并检查了 MySQL 参考手册(很庆幸有人会告诉我我错过了什么)。里面没有与BIT_LENGTH函数相关的内容。
我只是想知道BIT_LENGTH函数如何返回2个字节的汉字而不是3个字节或4个字节。