1

Я ищу помощь для загрузки файла .csv в MySQL Server с помощью пакетной, и у меня есть несколько основных вопросов.

Вопросы:

1) Данные файла CSV могут иметь (запятую) между (например, описание), так как я могу выполнить импорт, обрабатывая эти данные?

2) Чтобы загрузить CSV из Excel, тогда данные, содержащие запятую, заключены в "" (двойные кавычки) [как в примере ниже], так как импорт может справиться с этим?

Вот пример CSV с заголовком:

name,id,Subject,ExamDate,Mark,Description
Prabhat,1,Math,2/10/2013,25,Test data for prabhat.
Murari,2,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test."
sanjay,3,Science,,25,Test Only.

Инструкция SQL используется для импорта:

load data local infile "c:\\eqa\\project\\input.csv" into table request character set latin1 fields terminated by',' lines terminated by'\n' ignore 1 lines

Как я могу это сделать, это возможно?

1 ответ1

1

Так как вы используете load data local infile и загрузку данных в таблицу с использованием MySQL, в рамках этой функции предоставляется простое решение, которое поможет вам решить эту проблему.

Вы просто хотите быть уверенным, что включите подпункт ENCLOSED BY '"' как часть предложения FIELD в используемый вами синтаксис MySQL - ниже приведен пример этого.

load data local infile "c:\\eqa\\project\\input.csv" 
into table request 
character set latin1 
fields terminated by','
ENCLOSED BY '"'
lines terminated by'\n' 
ignore 1 lines

Это говорит MySQL, что во входном файле есть значения полей, которые заключены в двойные кавычки и разделены запятыми - все символы между двойными кавычками будут импортированы.


Дополнительные ресурсы

  • Загрузка данных в таблицу
  • ЗАГРУЗИТЬ ДАННЫЕ ИНФИЛЬНЫЙ Синтаксис
    • LOAD DATA INFILE может использоваться для чтения файлов, полученных из внешних источников. Например, многие программы могут экспортировать данные в формате значений, разделенных запятыми (CSV), чтобы строки имели поля, разделенные запятыми и заключенные в двойные кавычки, с начальной строкой имен столбцов. Если строки в таком файле завершаются парами возврата каретки / новой строки, показанный здесь оператор иллюстрирует параметры обработки полей и строк, которые вы использовали бы для загрузки файла:

      LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
        FIELDS TERMINATED BY ',' ENCLOSED BY '"'
        LINES TERMINATED BY '\r\n'
        IGNORE 1 LINES;
      

      Для ввода символ ENCLOSED BY , если имеется, удаляется с концов значений полей. (Это верно независимо от того, указано ли OPTIONALLY ; OPTIONALLY не влияет на интерпретацию ввода.) Проявления ENCLOSED BY характеру предшествует ESCAPED BY характеру интерпретируются как часть текущего значения поля.

      Если поле начинается с символа ENCLOSED BY , экземпляры этого символа распознаются как завершающие значение поля, только если за ним следует поле или строка последовательности TERMINATED BY . Чтобы избежать неоднозначности, вхождения символа ENCLOSED BY в значении поля могут быть удвоены и интерпретироваться как один экземпляр символа. Например, если указано ENCLOSED BY '"' , кавычки обрабатываются, как показано здесь:

      "The ""BIG"" boss"  -> The "BIG" boss
      The "BIG" boss      -> The "BIG" boss
      The ""BIG"" boss    -> The ""BIG"" boss
      

      источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .