0

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

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

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

CN010010 01 001 “奥托加县,阿拉巴马州” 2005 23831 23061 770 3.2

但是,它看起来像这样: CN010010 01 001 "Autauga County, AL" 2005 "23,831 " "23,061 " 770 3.2

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

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

提前致谢。

4

1 回答 1

2

“逗号”可能会导致问题。您是否为此使用加载数据文件?

假设表定义:

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, ",", "");

将插入以下行:

代码:CN010010
状态:01
 城市:001
 名称:奥托加县,阿拉巴马州
 年份:2005
 流行1:23831
 流行音乐2:23061
 差异:770
比率:3.2
于 2010-11-17T20:48:44.193 回答