2012-10-14 2 views
0

mysql 데이터베이스에 텍스트 파일의 데이터를 추가하는 데 어려움을 겪고 있습니다. 필자의 텍스트 파일에는 수십 개의 줄이 있는데이 줄에서 특정 구조 만 추출합니다 (테이블 구조와 비슷한 구조를 가진 줄).mysql,로드 데이터 Infile, 특정 행

테이블 구조 :

Name 
Surname 
Email 
City 
ZIP 

텍스트 파일 :

_field1 >>> blah 
otherfield >>> blah 
Name >>> John 
anotherfield >>> blah 
Email >>> [email protected] 
City >>> Portland 
ZIP >>> 90210 
yetanotherfield >>> foo 
+0

파일에 나타나는 필드의 순서가 예측 가능합니까? – eggyal

+0

데이터를 '/tmp/textfile.txt'데이터를 테이블 tablename.test 필드로로드합니다. '>>>'로 끝나는 필드는 '\ n'으로 끝납니다. – user1744934

+0

예, 예측 가능합니다. – user1744934

답변

0

그것은 거기에서 INSERT를 호출 한 후 다른 언어로 파일을 구문 분석하고 아마도 가장 좋은,하지만 내 필드의 순서부터 파일이 예측 가능하면 과 같이 사용자 변수를 통해 이동할 수 있습니다.

LOAD DATA INFILE '/path/to/file.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY '\n' LINES TERMINATED BY 0x1e 
    (@dummy, @dummy, @name, @dummy, @email, @city, @zip, @dummy) 
SET Name = SUBSTRING(@name, LOCATE(' >>> ', @name) + 5), 
    Email = SUBSTRING(@email, LOCATE(' >>> ', @email) + 5), 
    City = SUBSTRING(@city, LOCATE(' >>> ', @city) + 5), 
    ZIP = SUBSTRING(@zip, LOCATE(' >>> ', @zip ) + 5);