1

我正在尝试将 CSV 文件导入 MySQL 数据库。

我的 CVS 文件中的一列 (WIN_FLAG) 的值为“1”或“0”。

当我将 CSV 文件导入表中时,表中 WIN_FLAG 列下的每个值都是“127”。

正在发生的事情的一个粗略示例如下:

对于 CSV 文件:

Name     Date       WIN_FLAG
Dog      23/06/12   0
Cat      22/07/13   1
Mouse    21/05/11   0

导入后表中显示的内容:

Name     Date       WIN_FLAG
Dog      23/06/12   127
Cat      22/07/13   127
Mouse    21/05/11   127

我认为这个问题与我的 WIN_FLAG 列的数据类型有关。

我尝试过 tinyint(4) 和 tinyint(1),它们都给了我这个问题。

我应该为此列使用不同的数据类型吗?或者是另一个问题?

谢谢你的帮助。

4

1 回答 1

1

127 是 mysql 中 tinyint 的最大值。

使用 tinyint(1) 或 tinyint(4) 不会改变数据的存储方式,但会限制将返回的字符数。

http://dev.mysql.com/doc/refman/5.1/en/integer-types.html

我认为问题不在于您的数据库,而在于您的加载过程如何解释电子表格中的值。如果导入的值确实是整数 = 1 或整数 = 0,它们会很好地复制到您的 tinyint 列中。

尝试查看您导入的原始数据。如果您的数字有引号,那么您导入数据的方式可能会将它们误解为字符值并将它们转换为整数。

于 2013-11-12T04:33:54.593 回答