一,前言
百度到的答案各种各样,还是自己试一下才是最靠谱的。
二,实验结果
先建一个表:
create table test_varchar (id int,bytes varchar(2));
尝试存四个汉字:
mysql> insert into test_varchar (id,bytes) values (1,'汉字汉字');
ERROR 1406 (22001): Data too long for column 'bytes' at row 1
三个:
mysql> insert into test_varchar (id,bytes) values (1,'汉字汉');
ERROR 1406 (22001): Data too long for column 'bytes' at row 1
两个:
mysql> insert into test_varchar (id,bytes) values (1,'汉字');
Query OK, 1 row affected (0.01 sec)
两个是可以成功的
说明并不像网上说的那样varchar(20)只能存10个汉字。而实际上,mysql中,char(n)和varchar(n)中n代表的是字符数,不论是中文还是英文,一个字符就是一个英文字母或一个汉字。