表结构
Create Table: CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bi` binary(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
binary类型也是保存字符串。
binary(M)这里的M表示的是需要保存的字符串最大字节
insert into t1 (bi) values (10);
执行结果
+----+------+ | id | bi | +----+------+ | 1 | 10 | +----+------+
表结构binary(3)表示该字段最多存储3字节的字符量。10会被当做字符串"10"两个字节存储
insert into t1 (bi) values (321);
执行结果
+----+------+ | id | bi | +----+------+ | 1 | 10 | | 2 | 321 | +----+------+
insert into t1 (bi) values (4321);
执行结果
+----+------+ | id | bi | +----+------+ | 1 | 10 | | 2 | 321 | | 3 | 432 | +----+------+
“4321”是4个字节,binary(3)类型只保存前三个字节
insert into t1 (bi) values ('我');
执行结果
+----+------+ | id | bi | +----+------+ | 1 | 10 | | 2 | 321 | | 3 | 432 | | 4 | 我 | +----+------+
utf-8编码 "我"占3个字节,刚好能保存
insert into t1 (bi) values ('我1');
执行结果
+----+------+ | id | bi | +----+------+ | 1 | 10 | | 2 | 321 | | 3 | 432 | | 4 | 我 | | 5 | 我 | +----+------+
舍弃最后一个字节的字符"1"