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)

更新于:2019-08-22

533 次浏览

开启您的职业生涯

完成课程并获得认证

开始
广告