学习经验create table bit16(id int,a bit(16));
如果直接添加 insert into bit16 values (1,'101010101000000');会报错.
ERROR 1406 (22001): Data too long for column 'a' at row 1
正确添加语句为
insert into bit16 values (1,b'101010101000000');
前面添加b是添加2进制。
参考资料
用实际例子举例:
mysql> CREATE TABLE test(id int,a bit(8));
mysql> INSERT INTO test VALUES(1,b‘00111010′);
mysql> INSERT INTO test VALUES(2,b‘00111000′);
mysql> INSERT INTO t
多的不说,用实际例子举例:
mysql> CREATE TABLE test(id int,a bit(8));
mysql> INSERT INTO test VALUES(1,b‘00111010′);
mysql> INSERT INTO test VALUES(2,b‘00111000′);
mysql> INSERT INTO test VALUES(3,’00111010′);
mysql> INSERT INTO test VALUES(4,’1′);
mysql> SELECT id,a, a + 0 FROM test order by id;
+——+——-+——+
| id | a | a + 0 |
+——+——-+——+
| 1 | : | 58 |
| 2 | 8 | 56 |
| 3 | ? | 255 |
| 4 | 1 | 49 |
+——+——-+——+
b表示输入的字符串按binary转换,没有b标示的按ASCII码值转换。默认bit的值是转换成ASCII码的值的。a+0表示得到binary对应的数字的值。不在ASCII码范围的就用11111111(只针对本例)。