我正在尝试将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),这些都给了我这个问题。
我应该为此列使用不同的数据类型吗?还是另一个问题?
感谢您的帮助。
答案 0 :(得分:1)
127是mysql中tinyint的最大值。
使用tinyint(1)或tinyint(4)不会改变数据的存储方式,但会限制返回的字符数。
http://dev.mysql.com/doc/refman/5.1/en/integer-types.html
我认为问题不在于您的数据库,而在于您的加载过程如何解释电子表格中的值。如果导入的值确实是整数= 1或整数= 0,则它们会很好地复制到您的tinyint列中。
尝试查看导入的原始数据。如果您的数字附近有引号,那么您导入数据的方式可能会将它们误解为字符值并将其转换为整数。