MySQL 无法正确插入二进制数据? 应该使用哪种数据类型?
为此,请使用 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)
广告