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)

相关文章