SQL文件导入,其中文本包含逗号(,)

时间:2018-12-27 10:47:24

标签: mysql ubuntu import

我正在尝试将csv文件导入MySQL数据库。 问题是某些文本用“”包裹并包含逗号。

逗号也是单元格的分隔符,因此当文本包含逗号时,它将拆分为一个新的单元格。

文件看起来像这样:

id,first name,last name,comment
"152,45,3",James,Bond,"Hi, this is my comment."
"152,46,3",Donald,Duck,Comment whitout caracters
"152,47,4",Peter,Peterson,"Hi! Cool, this is my comment"

有人对此有解决方案吗?

我已经尝试过将其导入:

sed '/id/d' "Data.csv" > /tmp/data.csv

SQL:

LOAD DATA INFILE "/tmp/data.scv"
REPLACE INTO TABLE database.table
COLUMNS TERMINATED BY ','

2 个答案:

答案 0 :(得分:0)

您只需要添加可选的'''封闭的内容:

加载数据文件“ /tmp/data.scv” 替换为TABLE database.table 可选用“”包围 列以','

结尾

答案 1 :(得分:0)

我通过删除“”内的逗号来解决。

perl -pe 's/[^a-zA-Z0-9.\s"](?!(?:"[^"]*"|[^"])*$)//g' Data.csv > /tmp/data.csv