MySQL导入CSV时列分隔符问题求助:含逗号字段被拆分
解决MySQL导入CSV时带引号字段含逗号的拆分问题
直接给你能解决问题的LOAD DATA语句,再拆解关键参数的作用:
LOAD DATA LOCAL INFILE 'C:/Users/fg/Downloads/test.csv' INTO TABLE my_schema.my_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' IGNORE 1 ROWS;
关键参数说明
OPTIONALLY ENCLOSED BY '"':这是核心设置,它能让MySQL自动识别两种字段格式——带双引号包裹的字段(比如"Adam Steven & David, Brown")会被完整读取(忽略字段内部的逗号),不带双引号的单个名称字段则正常按逗号拆分,完美匹配你的CSV格式。ESCAPED BY '"':如果CSV里存在转义的双引号(比如字段值是"She said ""Hi""", Lee),这个设置会把连续的两个双引号解析成一个普通双引号,避免解析异常。
你之前踩的坑
用OPTIONALLY ENCLOSED BY没生效,大概率是参数顺序错误——FIELDS子句的参数必须按TERMINATED BY → [OPTIONALLY] ENCLOSED BY → ESCAPED BY的顺序写,顺序颠倒会导致MySQL无法正确识别规则。
额外注意
确保CSV里的双引号是成对出现的,没有缺失或多余的情况,否则MySQL会误把从第一个双引号到文件末尾的内容当成单个字段,导致导入失败。
内容的提问来源于stack exchange,提问作者Farkhod Giyasov
相关产品推荐
相关产品推荐

