MySQL 无法正确插入二进制数据?应使用哪种数据类型?
mysqlmysqli database
为此,请使用 BIT 数据类型。让我们首先创建一个表−
mysql> create table DemoTable(binaryValue BIT(5)); Query OK, 0 rows affected (0.83 sec)
使用 insert 命令在表中插入一些记录 −
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(15); Query OK, 1 row affected (0.15 sec)
使用 select 语句显示表中的所有记录 −
mysql> select *from DemoTable;
这将产生以下输出。现在您可以看到记录不可见 −
+-------------+ | binaryValue | +-------------+ | | | | +-------------+ 2 rows in set (0.00 sec)
要显示上述记录(二进制数据),需要使用 bin()−
mysql> select bin(binaryValue) from DemoTable;
这将产生以下输出 >
+------------------+ | bin(binaryValue) | +------------------+ | 1010 | | 1111 | +------------------+ 2 rows in set (0.00 sec)
现在让我们看另一个例子。
以下是插入二进制数据的查询,但使用 select 时值不可见 −
mysql> insert into DemoTable VALUES (b'1010'),(b'1111'); Query OK, 2 rows affected (0.52 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select *from DemoTable; +-------------+ | binaryValue | +-------------+ | | | | | | | | +-------------+ 4 rows in set (0.00 sec)
让我们再次检查表记录,并使用 bin() 显示 −
mysql> select bin(binaryValue) from DemoTable;
这将产生以下输出 −
+------------------+ | bin(binaryValue) | +------------------+ | 1010 | | 1111 | | 1010 | | 1111 | +------------------+ 4 rows in set (0.00 sec)