先創(chuàng)建一個表CREATETABLE`test`(`a`varchar(3)NOTNULLDEFAULT'')ENGINE=InnoDBDEFAULTCHARSET=utf8;字段a類型為varchar,長度3為三個字節(jié),也就是說字段a里面最多可以存三個字節(jié)長度的數(shù)據(jù)。但是我只想下面的sql語句竟然能成功。SQL語句為:insertintotestvalues('漢ab');“漢”unicode的字節(jié)長度為3,'ab'兩個字符的字節(jié)長度為2,總共有的字節(jié)長度為5了,為什么能插入成功呢,我的sql_mode設(shè)置的為嚴格模式。MySQL編碼信息為:>mysql>showvariableslike"%char%";+--------------------------+---------------------------------------------+|Variable_name|Value|+--------------------------+---------------------------------------------+|character_set_client|utf8||character_set_connection|utf8||character_set_database|latin1||character_set_filesystem|binary||character_set_results|utf8||character_set_server|latin1||character_set_system|utf8||character_sets_dir|D:\lamp\mysql-5.6.23-winx64\share\charsets\|+--------------------------+---------------------------------------------+
關(guān)于 MySQL 的 varchar 長度計算的疑問
阿晨1998
2019-04-16 16:58:27