我已将美国政府统计数据的电子表格导入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 - 可能是因为它不符合数据类型。
现在和将来解决这个问题的最佳解决方案是什么?
提前致谢。
答案 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