2010-07-13 34 views
7

Tôi có một vài tệp CSV tôi muốn tải vào cơ sở dữ liệu của mình, nhưng tệp CSV chứa nhiều cột nhiều hơn trong cơ sở dữ liệu của tôi. Làm cách nào để chỉ nhập các cột được chọn từ tệp CSV vào cơ sở dữ liệu của tôi?Nhập dữ liệu CSV của MySQL - bỏ qua một số cột csv

Vì lý do, giả sử CSV chứa hàng tiêu đề có tiêu đề cột A đến Z và sau đó là hai triệu hàng có giá trị cho cột từ A đến Z. Giả sử myTest bảng chứa B, N và S, Tôi chỉ muốn nhập cột B, N và S từ tệp CSV vào myTest.

Tôi đang lên kế hoạch để làm:

mysqlimport --local --columns=B,N,S --ignore-lines=1 --delete --default-character-set=latin1 --fields-optionally-enclosed-by=\" --fields-terminated-by=\, --lines-terminated-by=\r\n myDb myTest.csv 

Nhưng đó lấp đầy hàng B, N và S với các giá trị của cột A, B và C, không phải với các giá trị của cột B, N và S như tôi truy nã.

Bất kỳ đề xuất nào về cách tôi có thể nhập chỉ B, N và S?

Trả lời

14

Bạn cần thay đổi --columns=B,N,S và thêm thông số để bỏ qua tất cả các cột bạn không cần.

Ví dụ, để sử dụng 1, 4 và 7 sử dụng cột:

--columns=B,@x,@x,N,@x,@x,S 

này sẽ gửi 2, 3, 5 và cột 6 đến tham số @x.

Tham khảo: http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html

+0

Cảm ơn bạn rất nhiều, điều đó đã làm được điều đó! Tôi đã đọc liên kết đó suốt buổi sáng nhưng không nghĩ đến việc làm theo cách này :-) – niklassaers

Các vấn đề liên quan