mysql - 使用 MySQL 加载字段中包含多个逗号的 .csv 文件

标签 mysql sql csv

我有一个名为“table1”的表,其中包含以下列:

CSMembers、BCID、总计、电子邮件。

Excel 工作表包含此表的数据,格式如下:

     CSMembers       BCID                 Total           Email
        abc    2,5,7,9,12,17,22,32       10,000      abc@gmail.com
        xyz    1,3,5,7,9,12,17,20,22,33  12,500      xyz@gmail.com
        pqr    2,5,7,9,12,17,22,32       11,000      pqr@gmail.com
        ttt    2,5,7,9,12,17,22          9,800       ttt@gmail.com

其 .csv 文件是:

CSMembers,BCID,Total,Email
abc,"2,5,7,9,12,17,22,32","10,000",abc@gmail.com
xyz,"1,3,5,7,9,12,17,20,22,33","12,500",xyz@gmail.com
pqr,"2,5,7,9,12,17,22,32","11,000",pqr@gmail.com
ttt,"2,5,7,9,12,17,22","9,800",ttt@gmail.com

我使用了以下代码:

 load data local infile 'H:/abc.csv' into table table1
 fields terminated by ',' 
 optionally enclosed by '"'
 lines terminated by '\n' ignore 1 lines
 (CSMembers,BCID,Total,Email);

我得到以下输出:

CSMember    BCID    Total       Email
abc          2       10      abc@gmail.com

xyz          1       12      xyz@gmail.com

pqr          2       11      pqr@gmail.com

ttt          2       9       ttt@gmail.com

但我需要这个输出:

CSMembers   BCID                    Total         Email
    abc  2,5,7,9,12,17,22,32       10,000      abc@gmail.com
    xyz  1,3,5,7,9,12,17,20,22,33  12,500      xyz@gmail.com
    pqr  2,5,7,9,12,17,22,32       11,000      pqr@gmail.com
    ttt  2,5,7,9,12,17,22          9,800       ttt@gmail.com

谁能告诉我出了什么问题吗? 我是否应该更改代码或 csv 文件内容或两者? 请帮忙。

最佳答案

您的表架构可能是错误的bcid并且total可能被定义为某种int而不是字符串。数字字段不知道逗号是否是另一个字段的分隔符,或者只是将数字分开以便于读取。此外,数字字段的输入通常接受第一个非数字字符之前的值,即逗号

关于mysql - 使用 MySQL 加载字段中包含多个逗号的 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20115304/

相关文章:

Java - 使用 hibernate 读取从 MYSQL 查询返回的列表

sql - 获取 SQL Server 中列上每个长度的行数

Ruby 无法解析 CSV 文件:CSV::MalformedCSVError(第 1 行中的非法引用。)

linux - 如何在Ubuntu中使用awk获取2个csv文件中相同column2值的column1值的计算结果?

xml - 使用 Mule 4 将 CSV 转换为 XML

mysql - 检索具有最大日期的每个组的行

php - MySQL: from_unixtime: 访问被拒绝

mysql - 查询以计算Mysql中连续行中的距离(经度,纬度)之和

php - 如何在使用 group by 时计算列中的行数

c# - 在不使用字符串的情况下将 ExecuteScalar 结果转换为 GUID?