Вы показали нам эту строку из файла CSV
"text text",123,"text "Special" text",456,"text text"
К сожалению, это не правильно сформированный CSV. "
символы внутри значений столбцов должны быть экранированы. Таким образом, чтобы эта строка была правильно сформирована, она должна выглядеть примерно так:
"text text",123,"text ""Special"" text",456,"text text"
"text text",123,"text \"Special\" text",456,"text text"
Если бы это был мой проект, я бы go вернулся туда, где получил этот плохой CSV-файл, и попытался бы получите хороший.
Если это невозможно, и в вашем файле нет запятых, встроенных в значения столбцов, вы можете попробовать эту команду загрузки, сняв условие OPTIONALLY ENCLOSED BY
.
LOAD DATA LOCAL INFILE "'.$file.'"
INTO TABLE '.$table.'
FIELDS TERMINATED by \',\'
ESCAPED BY \'"\'
LINES TERMINATED BY \'\r\n\'
(location,rating,board etc)
Затем вы получите несколько строковых значений с символами "
в начале и в конце. Вы можете исправить это с помощью таких запросов
UPDATE table SET field = SUBSTRING(field,2) WHERE field LIKE '"%';
UPDATE table SET field = SUBSTRING(field, 1, LENGTH(field)-1) WHERE field LIKE '%"';
Первый запрос снимает первые "знаки", а второй - завершающие.