好吧这问题的最佳答案难选了 ... 我是来添乱的 ...
楼上三个回复都正确但都不全面 ...这事情主要还是看 数据库字符集 ...
如果是 latin1 的话 ... 计算字节长度 ... greatghoul 的答案是对的 ...
如果是 utf-8 的话 ... 计算字符长度 ... joyeu 的答案是对的 ...
至于 Theo 的答案里说的 4.1 为临界点的区别 ... 这事情真心和版本没什么关系 ...
只是因为 4.1 之后才引入字符集支持的口牙!
如果选 latin1 的话不管什么版本都会计算字节长度的口牙!
为了避免这个答案看起来是完全照抄了楼上 ... 我提一点其他的东西 ...
其实这题目里有另外一个坑 ... 就是要保存的东西是 汉字 ...
如果要保存 utf-8 字符的话 latin1 字符集可以保存 63 - 127 个 ...
但如果要保存汉字 ... 那么最大数量恐怕只有精确的 85 个 ...
因为我在码这些字之前自己想尽了一切方法测试都没能找到一个占用四字节的汉字 ...
怾gi 黁nun 兺bun 乯olo 乭daori 旕eosi 銰ngai 虄sari 哛popuni 硛ceoke 縇seone 穒keweoke
这组字够不够生僻 ..? 每个字也仅仅占用三字节而已 ...
至于两字节的汉字 ... 我也找不到 ... greatghoul 说的 〇 是错的 ... 〇占用三字节 ...
来个总结性陈词 ...
MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式的汉字 ...
latin1 字符集最多可以存放 85 个 UTF-8 格式的汉字 ...
utf-8 字符集最多可以存放 255 个 UTF-8 格式的汉字 ...
如果谁可以找到一个占用两字节或者占用四字节的汉字那么我的这个答案就错了 ...
找不到的话可以姑且信之 ...
以上 ...