0

首先,我无法重新导出它,所以我被这个文件卡住了。

在下面发布的示例中,INT 列的值是十六进制的。我认为。诸如 0X31 之类的值需要导入为 1。相反,它们导入为 49。我猜这可能是 ascii 等价物。我需要将 0x31 导入为 1,将 0x32 导入为 2,等等。我该怎么做?

我也可以使用足够智能的文本编辑器来搜索和替换这些值。我有成千上万的 questionid,所以我不想手动执行此操作,例如搜索“0x31”替换为“1”。

这是导入示例。

REPLACE INTO 'qa_sharedevents' ('entitytype', 'entityid', 'questionid', 'lastpostid', 'updatetype', 'lastuserid', 'updated') VALUES ('Q', '1', 0x31, '1', '', '1', '2012-03-08 23:45:56'), ('U', '1', 0x31, '1', '', '1', '2012-03-08 23:45:56'), ('Q', '1', 0x31, '3', '', '', '2012-03-09 02:23:54'), ('T', '17', 0x31, '1', '', '1', '2012-03-08 23:45:56'), ('Q', '2', 0x32, '2', '', '1', '2012-03-09 01:28:36'), ('U', '1', 0x32, '2', '', '1', '2012-03-09 01:28:36'), ('Q', '2', 0x32, '2', 'E', '1', '2012-03-09 01:30:27'), ('U', '1', 0x32, '2', 'E', '1', '2012-03-09 01:30:27'),

4

2 回答 2

2

试试这个CHAR()功能:

mysql> select char(0x31), char(0x35);
+------------+------------+
| char(0x31) | char(0x35) |
+------------+------------+
| 1          | 5          |
+------------+------------+
1 row in set (0.00 sec)
于 2012-08-08T16:29:25.117 回答
0

您可以使用 MySQL 子串函数。在你的 mysql 客户端上试试这个,看看它是如何工作的:

选择子字符串('0x31',-1,1);

于 2012-08-08T16:30:22.870 回答