mysql-varchar、text 类型到底能存储多大字符?


前提:一个中文字符大概占用 3个字节,一个英文或者数字字符占用 1 个字节,length() 函数查看的是字节数,char_length() 查看的是字符数

varchar 默认存储的是字符

varchar 存储的是字符,长度是创建数据库中定义好的,例如下面的 name1 可以存储 11 个字符,无论是中文还是英文

例如:

create table test
(
    id    int(20)     not null
        primary key,
    age   int         null,
    name  json        null,
    name1 varchar(11) null
);

text 默认存储的是字节

和 varchar 不同,text 存储的是字节,最大 65535 字节,需要使用 length() 函数来看,所以,text 里面如果有中文的话,字符数是不等于字节数的,比如你在代码中判断字符长度没有超过 65535,但是去插入数据库时,可能会报 | [2021-12-08 16:08:21] [22001][1406] Data truncation: Data too long for column 'name1' at row 1


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM