length()和之间的主要区别是char_length()什么?
我相信它与二进制和非二进制字符串有关.将字符串存储为二进制文件是否有任何实际原因?
mysql> select length('MySQL'), char_length('MySQL');
+-----------------+----------------------+
| length('MySQL') | char_length('MySQL') |
+-----------------+----------------------+
| 5 | 5 |
+-----------------+----------------------+
1 row in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)
And*_*mar 345
LENGTH()返回以字节为单位测量的字符串长度.
CHAR_LENGTH()返回以字符为单位的字符串长度.
这与Unicode特别相关,其中大多数字符以两个字节编码.或UTF-8,其中字节数变化.例如:
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,欧元符号占用3个字节(它0xE282AC以UTF-8 编码),即使它只有一个字符.
| 归档时间: |
|
| 查看次数: |
209911 次 |
| 最近记录: |