Файл CSV SQL — Пропуск всех столбцов после определенного номера столбца

У меня были проблемы в течение нескольких дней и я ударил кирпичную стену. Во-первых, как следует из названия, я работал над импортом файлов CSV в базу данных SQL.

Чтобы быть более конкретным, это делается с помощью сценариев PHP на сервере и через MySQL в БД.

В настоящее время у меня есть около 30 CSV-файлов (по прогнозам, их число будет увеличиваться), которые обновляются ежедневно, затем один раз в день запускается скрипт cron для обновления новых данных. Загружает файл через LOAD DATA INFILE, Все это работает отлично.

Проблема в:
Каждый файл CSV содержит различное количество столбцов. Количество столбцов составляет от 50 до 56 столбцов. Данные, которые я храню в этой коллективной базе данных, требуют только первые 8 столбцов. Я уже знаю, как пропустить отдельные столбцы, используя @dummy, благодаря следующему Q&A: Как пропустить столбцы в CSV-файле при импорте в таблицу MySQL с помощью LOAD DATA INFILE?

Тем не менее, поскольку фиктивное число не всегда будет одинаковым из-за разного количества столбцов, мне было интересно, есть ли способ получить данные из столбцов 1-8, а затем игнорировать все после независимо от количества столбцов?

0

Решение

Довольно грубым исправлением было бы сначала прочитать начальную строку в php, чтобы посчитать столбцы запятыми. Затем, зная сумму, вычтите 8 и сгенерируйте команду sql, теперь зная, сколько столбцов нужно игнорировать.

0

Другие решения

Просто включите восемь столбцов для заполнения, и мы получим первые восемь из строки CSV:

LOAD DATA INFILE 'file.txt' INTO TABLE t1 (c1, c2, c3, c4, c5, c6, c7, c8)
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector