MySQL's CSV engine does NOT interpret "", inside quotes properly. It requires sequence like \", to be there instead, without clear reason (I see nothing like this explained here, http://dev.mysql.com/doc/refman/5.6/en/csv-storage-engine.html).
How to repeat (taken from upstream bug description):
On any MySQL server version execute the following:
mysql> CREATE TABLE `emp` ( -> `col1` text NOT NULL, -> `col2` text NOT NULL -> ) ENGINE=CSV DEFAULT CHARSET=utf8 -> ; Query OK, 0 rows affected (0.11 sec)
mysql> insert into emp values ("alan", "newyork"), ("jim", "CA\",boston"); Query OK, 2 rows affected (0.06 sec) Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from emp; +------+------------+ | col1 | col2 | +------+------------+ | alan | newyork | | jim | CA",boston | +------+------------+ 2 rows in set (0.00 sec)
mysql> flush tables; Query OK, 0 rows affected (0.05 sec)
Now, check what is in emp.CSV file in the database directory. You'll see:
"alan","newyork" "jim","CA\",boston"
I do not see this documented on Wiki as acceptable way of quoting. Now, change file to conform to "standard":
"alan","newyork" "jim","CA"",boston"
Then check how it is interpreted/loaded:
mysql> flush tables; Query OK, 0 rows affected (0.00 sec)
mysql> select * from emp; +------+---------+ | col1 | col2 | +------+---------+ | alan | newyork | | jim | CA" | +------+---------+ 2 rows in set (0.02 sec)
mysql> select version(); +-----------+ | version() | +-----------+ | 5.5.33 | +-----------+ 1 row in set (0.01 sec)
MySQL's CSV engine does NOT interpret "", inside quotes properly. It requires sequence like \", to be there instead, without clear reason (I see nothing like this explained here, http:// dev.mysql. com/doc/ refman/ 5.6/en/ csv-storage- engine. html).
How to repeat (taken from upstream bug description):
On any MySQL server version execute the following:
mysql> CREATE TABLE `emp` (
-> `col1` text NOT NULL,
-> `col2` text NOT NULL
-> ) ENGINE=CSV DEFAULT CHARSET=utf8
-> ;
Query OK, 0 rows affected (0.11 sec)
mysql> insert into emp values ("alan", "newyork"), ("jim", "CA\",boston");
Query OK, 2 rows affected (0.06 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from emp; +------ ------+ +------ ------+ +------ ------+
+------
| col1 | col2 |
+------
| alan | newyork |
| jim | CA",boston |
+------
2 rows in set (0.00 sec)
mysql> flush tables;
Query OK, 0 rows affected (0.05 sec)
Now, check what is in emp.CSV file in the database directory. You'll see:
"alan","newyork"
"jim","CA\",boston"
I do not see this documented on Wiki as acceptable way of quoting. Now, change file to conform to "standard":
"alan","newyork"
"jim","CA"",boston"
Then check how it is interpreted/loaded:
mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from emp;
+------+---------+
| col1 | col2 |
+------+---------+
| alan | newyork |
| jim | CA" |
+------+---------+
2 rows in set (0.02 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.33 |
+-----------+
1 row in set (0.01 sec)