如何在mysql中更改导入的电子表格的数据类型?

时间:2010-11-17 20:38:46

标签: sql mysql data-import

我已将美国政府统计数据的电子表格导入mysql表格,目的是完成教程。

然而,似乎美国政府已经改变了格式,以便将一些数字数字用引号括起来,将它们变成字符串。

例如,这是我应该下载的以制表符分隔的数据的格式:

CN010010 01 001“Autauga County,AL”2005 23831 23061 770 3.2

然而,它看起来像这样:CN010010 01 001“Autauga County,AL”2005“23,831”“23,061”770 3.2

因此,我想要作为整数导入的两个关键数据列(23831和23061位)注册为0 - 可能是因为它不符合数据类型。

现在和将来解决这个问题的最佳解决方案是什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

“逗号”可能会导致问题。您是否正在使用负载数据infile?

假设表定义:

CREATE TABLE `t` (
  `code` varchar(255) DEFAULT NULL,
  `state` char(2) DEFAULT NULL,
  `city` char(3) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `year` int(11) DEFAULT NULL,
  `pop1` int(11) DEFAULT NULL,
  `pop2` int(11) DEFAULT NULL,
  `diff` int(11) DEFAULT NULL,
  `ratio` float DEFAULT NULL
)

以下内容将导入文件:

load data local infile "test.txt"
into table t
columns terminated by '\t'
optionally enclosed by '"'
(code, state, city, name, year, @var1, @var2, diff, ratio)
set pop1=replace(@var1,",", ""),
    pop2=replace(@var2, ",", "");

会插入以下行:

 code: CN010010
state: 01
 city: 001
 name: Autauga County, AL
 year: 2005
 pop1: 23831
 pop2: 23061
 diff: 770
ratio: 3.2