załadować plik CSV do mysql za pomocą partii?

1

Szukam pomocy, aby załadować plik .csv do serwera MySQL za pomocą partii i mam kilka podstawowych pytań.

Zagadnienia:

1) Dane pliku CSV mogą mieć (przecinek) pomiędzy (np .: opis), więc jak mogę importować te dane?

2) Aby załadować CSV z Excela, dane, które mają przecinek, są ujęte w „” (podwójne cudzysłowy) [jak w poniższym przykładzie], więc jak import może sobie z tym poradzić?

Oto przykładowy plik CSV z nagłówkiem:

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.

Instrukcja SQL używana do importowania:

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

Jak mogę to zrobić, czy to możliwe?

dumbuu
źródło

Odpowiedzi:

1

Od kiedy używasz load data local infile i Ładowanie danych do tabeli przy użyciu MySQL istnieje proste rozwiązanie, które jest częścią tej funkcji, które pomoże Ci rozwiązać ten problem.

Po prostu chcesz mieć pewność, że włączysz ENCLOSED BY '"' podrozdział jako część FIELD klauzula w składni MySQL, której używasz - poniżej jest tego przykładem.

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

To mówi MySQL, że plik wejściowy ma wartości pól, które są oba ujęte w podwójne cudzysłowy i Oddzielone przecinkami —Wszystkie znaki pomiędzy podwójnymi cudzysłowami zostaną zaimportowane.


Dalsze zasoby

  • Ładowanie danych do tabeli
  • LOAD DATA INFILE Składnia
    • LOAD DATA INFILE może być używany do odczytu plików uzyskanych ze źródeł zewnętrznych. Na przykład wiele programów może eksportować dane w formacie wartości rozdzielanych przecinkami (CSV), tak że linie mają pola oddzielone przecinkami i ujęte w podwójne cudzysłowy, z początkową linią nazw kolumn. Jeśli linie w takim pliku są zakończone parami powrotu karetki / nowej linii, pokazane tutaj polecenie ilustruje opcje obsługi pól i linii, których użyłbyś do załadowania pliku:

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

      Dla danych wejściowych ENCLOSED BY znak, jeśli jest obecny, jest usuwany   końce wartości pól. (Jest to prawdą niezależnie od tego, czy OPTIONALLY jest specyficzne; OPTIONALLY nie ma wpływu na wejście   interpretacja.) Zdarzenia ENCLOSED BY znak poprzedzony   przez ESCAPED BY znak są interpretowane jako część prądu   wartość pola.

      Jeśli pole zaczyna się od ENCLOSED BY postać, instancje   ten znak jest uznawany za zakończenie wartości pola tylko wtedy, gdy   po którym następuje pole lub linia TERMINATED BY sekwencja. Unikać   dwuznaczność, wystąpienia ENCLOSED BY znak w polu   wartość może być podwojona i interpretowana jako pojedyncza instancja   postać. Na przykład, jeśli ENCLOSED BY '"' jest określony, cytat   znaki są obsługiwane tak, jak tutaj:

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

      źródło

Pimp Juice IT
źródło