Я импортировал электронную таблицу статистики правительства США в таблицу 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 - предположительно, потому что они не соответствуют типу данных.
Какое лучшее решение для решения этой проблемы сейчас и в будущем?
Спасибо заранее.
"Запятая" может вызвать проблемы. Используете ли вы данные загрузки данных для этого?
Предполагая определение таблицы:
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