2012-11-26 33 views
7

Cố gắng để MySQL có thể bỏ qua một hàng cụ thể khi nhập thông qua lệnh INFILE. Về cơ bản, đó là hàng "tiêu đề" trong tệp CSV.Hàng tiêu đề vô hiệu của MySQL bỏ qua

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table; 

Tôi đã xem xét lệnh bỏ qua, nhưng đó là để bỏ qua các khóa trùng lặp. Có cách nào để bỏ qua một mục/hàng cụ thể trong tệp .txt không?

Trả lời

10

IGNORE có hai nghĩa trong một tuyên bố LOAD DATA INFILE. Đầu tiên là thay thế/bỏ qua khi nói đến các lỗi khóa trùng lặp. Ý nghĩa thứ hai là thứ bạn đang tìm kiếm. báo cáo kết quả hoàn toàn là IGNORE n LINES

Bạn không thể bỏ qua một dòng ngẫu nhiên nhưng bạn có thể bỏ qua dòng n ở đầu inputfile của bạn như thế này:

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table IGNORE 1 LINES; 

này sẽ bỏ qua 5 dòng đầu tiên, nơi cuối dòng EOL được mặc định là \n và có thể được đặt thành bất kỳ ký tự nào sử dụng LINES TERMINATED BY 'CHR'

+0

Vì vậy, nếu nó là 'IGNORE 5 LINES' thì nó có bỏ qua dòng thứ 5 hay nó bỏ qua 5 dòng đầu tiên? – Plummer

+0

điều này sẽ bỏ qua 5 dòng đầu tiên, khi kết thúc dòng (EOF) được đặt mặc định thành "\ n" và có thể được đặt thành bất kỳ ký tự nào sử dụng 'LINES TERMINATED BY 'CHR'' –

+0

Rất hữu ích, cảm ơn bạn. – Plummer

6

Thêm tùy chọn này để tuyên bố của bạn:

IGNORE 1 LINES 
+0

Tôi thích câu trả lời này, rất đơn giản. – caiosm1005

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