2017-02-28 2 views
-2

13 개의 열이있는 csv 파일이 있고 각 열에는 많은 양의 데이터가 있으며 필요한 것은 .csv 파일에서이 데이터를 추출 할 수 있습니다. mysql 데이터베이스.CSV 파일에서 데이터베이스로 데이터를 가져 오는 방법

첫 번째로 나는 csv 파일의 각 열에 대해 특정 테이블을 만드는 데 도움이 필요합니다. 저는 mysql을 처음 접했을뿐만 아니라 각 테이블에 어떤 특성을 할당 할 지에 대해 확신하지 못했습니다. 여기

은 csv 파일의 구조 ...

PID, START_TIME, END_TIME, EPOCH_START, epoch_end, complete_title, MEDIA_TYPE, masterband, 서비스, brand_pid, is_clip, 카테고리, 태그

입니다 컬럼 아래

데이터 p00547jm (PID) 1,003,394,820 (START_TIME) 1,003,999,620 (END_TIME) 2001-10-18T08 : 47 : 00 (EPOCH_START) 2001-10-25T08 : 47 : 00 (epoch_end) in_our_time : _democracy (complete_title), audio (media_type), bbc_radio_four (masterband), bbc_radio_four (서비스), b006qykl (brand_pid), 0 (is_clip), [9100005 : 1 : factual.9200041 : 2 : arts_culture_and_the_media.9200055 : 2 : history] (카테고리), [democracy.history.philosophy.plato.ancient_greece] (태그)

+1

당신은이 링크 http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql –

답변

0

먼저 테이블을 만들고 다음 새 테이블로 파일에서 데이터를 삽입 할

LOAD DATA LOCAL INFILE '/home/dummy/dummy.csv' INTO TABLE tablename 
FIELDS TERMINATED BY ','; 

를 사용합니다.

우리는 구문을 제공 할 수 있지만, 우리는 당신을 위해 전체 쿼리를 작성할 수 없습니다 당신의 MySQL에 로그인 할 때

또한, 테이블을 만들기위한 당신이로

mysql -uusername -ppassword --local-infile 

를 사용하십시오. 필요한 데이터가있는 경우 직접 시도 할 수 있습니다.

create table table_name (col1 datatype(size) NOT NULL primary key, 
col1......); 
+0

안녕 크리슈나를 참조 답장을 보내 주셔서 감사 않았다! 궁금한 점은 13 개의 필드가있을 때만 1 개의 테이블을 만들어야하기 때문에 각 테이블마다 별도의 테이블이 필요하다고 가정했거나 1 개의 테이블 만 만들어야한다는 것입니다. 이것이 바로 내가 고심하고있는 부분입니다. .. –

+0

이게 당신의 질문을 해결합니까? 그렇다면 대답으로 받아들이면 닫을 수 있습니다. – Krishnakumar

+0

@ Jason-D DB 내부에서 필요한 것이 무엇인지에 달렸습니다. 이를 위해 13 개의 열 이름을 가진 단일 테이블을 만든 다음 삽입을 수행합니다. – Krishnakumar

0

이 테이블 이름 다음

[Create mysql table directly from CSV file using the CSV Storage engine?

#!/bin/sh 
# pass in the file name as an argument: ./mktable filename.csv 
echo "create table $1 (" 
head -1 $1 | sed -e 's/,/ varchar(255),\n/g' 
echo " varchar(255));" 

파일을 읽고 while 루프에 삽입 논리를 넣을 수 있습니다에게가 될 작성 테이블 쿼리를 $ 1이 생성됩니다

[Import CSV into MYSQL but ignore header row // 읽기 위해 csv 파일을 열기 $ handle = fopen ($ file_path, 'r');

// read the first line and ignore it 
fgets($handle); 

while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) { 
// do your thing 
}