[Mysql]varchar存中文的长度问题

在MySQL 5.7中,VARCHAR(50)可存储50个字符,无论汉字还是英文。对于5.0.3之前的版本,VARCHAR(100)存储UTF8汉字时限制为33个。而在5.0.3及更高版本,存储不受字节数限制,统一按字符数计算。汉字在GBK编码下占2字节,UTF-8下占3字节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在主流的MYSQL 5.7

varchar(50)能存50个中文汉字,其实就是不管是什么字符,中文也好英文也好,只能存50个。

其实varchar类型可以存储多少个汉字,多少个数字,是要具体看我们的mysql版本,目前2020年使用的版本应该都是按照字符数来算了,而不是字节数。

如下:
5.0.3版本以下,比如 varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)

5.0.3版本及以上,比如varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个

mysql历史版本:基本只能查到5.0以上版本了,并不是说没有4.x, https://downloads.mysql.com/archives/community/

 

汉字在不同字符集占用字节不同:

GBK编码下,一个汉字占2个字节bai;
UTF-8编码下,一个汉字占3个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值