mysql varchar(255)在5.7版本中其实表示的是255个字符串。这个长度并不是length()的长度而是char_length长度。中国人就是3个长度。而不是按照中国人的字节占用9个来算的。
mysql> set @c = '中国人';
Query OK, 0 rows affected (0.00 sec)
mysql> select @c,length(@c),char_length(@c);
+-----------+------------+-----------------+
| @c | length(@c) | char_length(@c) |
+-----------+------------+-----------------+
| 中国人 | 9 | 3 |
+-----------+------------+-----------------+
1 row in set (0.00 sec)
golang
var s string
s = "中国人"
fmt.Println(len(s),len([]rune(s))) // 9 3
php
<?php
$s = "中国人";
echo strlen($s); // 9
echo mb_strlen($s); // 3
博客探讨了MySQL中VARCHAR(255)字段的含义,指出它表示255个字符长度,而非字节长度。通过示例展示了在不同编程语言如Go和PHP中,计算字符串长度时的差异,强调了字符长度与字节占用的区别。
2万+

被折叠的 条评论
为什么被折叠?



