Как изменить тип данных импортированной электронной таблицы в mysql?

Я импортировал таблицу статистики правительства США в таблицу mysql с целью прохождения учебника.

Однако может показаться, что правительство США изменило свой формат, так что некоторые числовые цифры заключены в кавычки, превращая их в строки.

Например, это формат данных, разделенных табуляцией, которые я должен был загрузить:

CN010010 01 001 "Округ Аутауга, Алабама" 2005 23831 23061 770 3,2

Тем не менее, это выглядит следующим образом: CN010010 01 001 "Округ Аутауга, AL" 2005 "23 831 " "23 061 " 770 3,2

В результате два ключевых столбца данных (23831 и 23061 бит), которые я хочу импортировать как целые числа, регистрируются как 0 - предположительно, потому что они не соответствуют типу данных.

Как лучше всего решить эту проблему сейчас и в будущем?

Заранее спасибо.

1 ответ

Решение

"Запятая" может вызвать проблемы. Используете ли вы данные загрузки для этого?

Предполагая определение таблицы:

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
 название: Аутаугский уезд, AL
 год: 2005
 pop1: 23831
 pop2: 23061
 разница: 770
соотношение: 3,2
Другие вопросы по тегам