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