#mysql #csv #innodb
#mysql #csv #innodb
Вопрос:
Мой CSV-файл (образец) :
;"=""VENTE""";2020/09/11;
;"=""IBH""";2020/09/15;
;"=""HGTPE""";2020/09/02;
Мой sql-запрос :
LOAD DATA INFILE 'test.csv' INTO TABLE siel_demo CHARACTER SET latin1 FIELDS TERMINATED BY ';' optionally ENCLOSED BY '"' LINES TERMINATED BY 'rn' IGNORE 1 LINES
Результат :
Но я хочу :
После нескольких попыток я не могу сохранить только значение без паразитных символов
Комментарии:
1. Какую СУБД вы используете?
2. Я использую на самом деле InnoDB
3. Данные были загружены правильно, и значения, которые вы видите, соответствуют фактическим значениям в CSV. Если вам нужен какой-то другой формат (основанный на формате, который я ожидаю от Excel), вам нужно либо экспортировать их по-другому (без формул), изменить CSV после экспорта, либо изменить данные после импорта.
4. Данные CSV поступают из программного обеспечения, которое нельзя настроить. У меня нет другого выбора, кроме как работать с этими данными. Должно быть решение игнорировать «» или =
Ответ №1:
После загрузки csv вы можете запустить запрос на обновление, чтобы удалить ненужные символы.
например UPDATE siel_demo SET grille = SUBSTR(grille, 3, LENGTH(grille) - 3) WHERE grille LIKE '="%"'