powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
6 сообщений из 6, страница 1 из 1
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539228
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня. Есть файл CSV с несколькими десятками полей. Загружается LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE `table1_1`... в таблицу, где число полей соответствует числу полей файла. С этим нет проблем.

Однако, в исходном файле имеется несколько десятков полей, а для работы требуются лишь несколько, скажем, только лишь поля field_5, field_6, field_10, field_25. Остальные поля вообще никак не используются. Не то, чтоб лишние поля в таблице люто мешают, но сама таблица довольно тяжеловесна получается.
Собственно, вопрос. Возможно ли в таблицу, состоящую только из нескольких нужных полей, загружать произвольные поля из CSV файла?

Гхм...
В конце запроса после IGNORE 1 LINES указать в скобках список только нужных полей - но тут результат прямо противоположный - в указанные поля таблицы пишутся первые несколько полей из файла.


PS: На крайний случай оставил вариант. Залить всё во временную таблицу, затем скопировать в рабочую только нужное и временную удалить.
...
Рейтинг: 0 / 0
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539247
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Можно:
https://dev.mysql.com/doc/refman/5.7/en/load-data.html You can also discard an input value by assigning it to a user variable and not assigning the variable to a table column:
Код: sql
1.
2.
3.
LOAD DATA INFILE 'file.txt'
  INTO TABLE t1
  (column1, @dummy, column2, @dummy, column3);



А если нужна какая-то дополнительная обработка, то можно сделать ее сразу при загрузке секцией SET.
...
Рейтинг: 0 / 0
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539250
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Другими словами, таблица в любом случае должна содержать полный набор полей, который есть в CSV , но ненужные поля можно просто "обнулить" при записи, заполнить NULL, например. Правильно понимаю?
...
Рейтинг: 0 / 0
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539251
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или нет... "Лишние" поля в этом примере читаются в переменную, а нужные в таблицу падают?
...
Рейтинг: 0 / 0
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539258
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, самое то, что надо. Спасибо!
...
Рейтинг: 0 / 0
Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
    #39539259
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vklemiksoft,

Другими словами, таблица в любом случае должна содержать полный набор полей, который есть в CSV , но ненужные поля можно просто "обнулить" при записи, заполнить NULL, например. Правильно понимаю?Нет.
vkle"Лишние" поля в этом примере читаются в переменную, а нужные в таблицу падают?Да.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли при помощи LOAD DATA INFILE загрузить только некоторые поля из CSV файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]