2016-04-29 3 views
0

二重引用符で囲まれたフィールドを含むテーブルがありますが、 "inches"の名前または省略形の一部です。MySQLのCSVへのエクスポート - フィールドに "が含まれていますが、エスケープされません"

これをCSVファイルにエクスポートする必要がありますが、MySQLは「CSVの余分な列を作成しています。どのように私は、フィールド値の範囲内」扱うことができ

コード:?餌テーブルから

select 
    makers.maker_name, 
    baits.bait, 
    depth_line.depth, 
    depth_line.lineout a 
from makers 
    inner join baits on makers.maker_id = baits.maker_id 
    inner join depth_line on depth_line.bait_id = baits.bait_id 
order by 
    makers.maker_name asc, 
    baits.bait, 
    depth_line.depth asc 
into outfile '/tmp/muskie.csv' 
fields terminated by ','; 

サンプルデータ:

答えて

0

私は、問題を再現することはできません

mysql> SELECT VERSION(); 
+-----------+ 
| VERSION() | 
+-----------+ 
| 5.7.12 | 
+-----------+ 
1 row in set (0.00 sec) 

mysql> DROP TABLE IF EXISTS `table0`; 
Query OK, 0 rows affected (0.00 sec) 

mysql> CREATE TABLE IF NOT EXISTS `table0` (
    -> `column0` VARCHAR(255) DEFAULT NULL, 
    -> `column1` VARCHAR(255) DEFAULT NULL 
    ->); 
Query OK, 0 rows affected (0.01 sec) 

mysql> INSERT INTO `table0` 
    -> (`column0`, `column1`) 
    -> VALUES 
    -> ('"inches"', 'inches'), 
    -> ('4"', 'Lure name, 8", char, char'), 
    -> ('"VALUE 1"', 'NEW VALUE 1'); 
Query OK, 3 rows affected (0.00 sec) 
Records: 3 Duplicates: 0 Warnings: 0 

mysql> SELECT 
    -> `column0`, 
    -> `column1` 
    -> FROM 
    -> `table0` 
    -> INTO OUTFILE '/path/to/file/muskie.csv' 
    -> FIELDS TERMINATED BY ','; 
Query OK, 3 rows affected (0.00 sec) 

ファイル。 :/path/to/file/muskie.csv

"inches",inches 
4",Lure name\, 8"\, char\, char 
"VALUE 1",NEW VALUE 1 

UPDATE

おそらくパラメータOPTIONALLY ENCLOSED BY '"'を追加すると便利です。

SELECT 
    `column0`, 
    `column1` 
FROM 
    `table0` 
INTO OUTFILE '/path/to/file/muskie.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; 

ファイル:フィールドに/path/to/file/muskie.csv

"\"inches\"","inches" 
"4\"","Lure name, 8\", char, char" 
"\"VALUE 1\"","NEW VALUE 1" 
+0

私のデータ問題になっているが、より次のようになります。「4" 'または'ルアーの名前、8 "'...フィールドのどこかに1つの"があります。 –

+0

私は申し訳ありませんが、二重引用符は私の問題ではない、それは私の痛みを引き起こしているフィールド内のカンマです。そのため、単一のフィールドに 'char、char'が含まれている可能性があります。クエリは、コンマのフィールドを分割しています。 –

+0

@ C.Gombola:更新された回答を参照してください。 – wchiquito

関連する問題