Загружать данные из CSV и игнорировать повторяющиеся записи на основе совпадения нескольких столбцов mysql - PullRequest
0 голосов
/ 29 октября 2018

У меня есть один CSV-файл, который имеет n записей. Теперь я хочу импортировать его в таблицу. Я также хочу игнорировать дублирующиеся записи (дубликат будет рассмотрен, если конкретные два столбца имеют одинаковое значение). Я также передаю заголовки в значение запроса, чтобы reoced был вставлен в соответствующий столбец таблицы базы данных

Мой запрос Заголовок $ является заголовком CSV $ basePath - это базовый путь к csv

  $query = sprintf("LOAD DATA local INFILE '%s' INTO TABLE table name FIELDS TERMINATED BY '`' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\"' LINES TERMINATED BY '\\n'   (duplicatematchcol1,duplicatematchcol1) IGNORE 0 LINES (" . implode(',', $header) . ") , addslashes($basePath));

1 Ответ

0 голосов
/ 29 октября 2018

Если у вас есть индекс UNIQUE для столбцов, которые определяют дублирование, вы всегда можете просто использовать подход INSERT IGNORE INTO ..., где ошибки вставки такого рода игнорируются.

Флаг IGNORE должен использоваться даже в запросе LOAD DATA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...