What you're looking for is...
ESCAPED BY '"'
In CSV, one way of including literal quotation marks inside a single field is by doubling them up.
In the example file you posted, that's exactly what's happening at line 44.
The rest of your statement looks correct. Replace the ESCAPED BY
part with what I've shown above, and you should be good.
http://dev.mysql.com/doc/refman/5.5/en/load-data.html
Occurrences of the ENCLOSED BY character preceded by the ESCAPED BY
character are interpreted as part of the current field value.
...which is exactly what you're needing.
This is a very tough question to answer simply because you are going beyond InnoDB current limits.
Your question is not by any means unique. This has been addressed here before
I would also look into the character set you are currently using.
Bill Karwin said it best in his last paragraph
I also have to comment that I've never seen a well-designed table exceed the row size limit. It's a strong "code smell" that you're violating the repeating groups condition of First Normal Form.
You are going to have to define a better design. No business reason can ever justify it. Why?
Back on July 20, 2011, I answered this question: Too many columns in MySQL
I personally eyewitnessed this
In my earlier days as a developer, I worked at a company back in 1995 where DB2 was the main RDBMS. The company had a single table that had 270 columns, dozens of indexes, and had performance issues retrieving data. They contacted IBM and had consultants look over the architecture of their system, including this one monolithic table. The company was told "If you do not normalize this table in the next 2 years, DB2 will fail on queries doing Stage2 Processing (any queries requiring sorting on non-indexed columns)." This was told to a multi-trillion dollar company, to normalize a 270 column table. How much more so a 2000 column table.
A table with 300 TEXT columns is asking for same kind of trouble.
SUMMARY : Bill Karwin said it before and I agree: REDESIGN THE TABLE. That will circvumvent the row length issue for sure.
Best Answer
You don't say how you are trying to process the file (command line, via a web based tool, ...) but I suspect that you are using something like phpMyAdmin's web based interface which is the most common way people interact with mySQL (aside from through their own code) in my experience.
Here you will run into issues with both PHP and the web server it is running within having limits on the size of any single upload. These limits are in place to prevent DoS issues (accidental or otherwise) due to
/tmp
or other areas becoming full so unless you run you own server you probably won't be able to get the limits pushed up high enough to deal with that large a file. If you do run your own server, see pages like this answer for details of how to make the required changes.Other than this you have four options: