当加载的原始数据具有许多唯一字符时,如何将CSV数据加载到MySQL数据库中
除此之外,我还必须确保当数据库中的上一个值=当加载的原始数据具有许多唯一字符时,如何将CSV数据加载到MySQL数据库中,mysql,excel,csv,database-design,import,Mysql,Excel,Csv,Database Design,Import,除此之外,我还必须确保当数据库中的上一个值=“已关闭”、“已完成”、“已取消”、“已拒绝”时,从新上载中忽略重复的票证 使用程序:MS Excel 2013、MySQL 6.1 workbench 6.1.7 MySQL中的列名: Column Name Datatype pk nn UQ BIN UN ZF AI Default id varchar(45) Y Y Y priority tinytext
“已关闭”、“已完成”、“已取消”、“已拒绝”时,从新上载中忽略重复的票证
使用程序:MS Excel 2013、MySQL 6.1 workbench 6.1.7
MySQL中的列名:
Column Name Datatype pk nn UQ BIN UN ZF AI Default
id varchar(45) Y Y Y
priority tinytext Null
submit_dt datetime Null
group varchar(100) Null
comp_dt datetime Null
status varchar(45) Null
CSV中的原始样本:
id priority submit_dt group status comp_dt
222 High 1/26/2015 7:08 bread Closed 1/26/2015 15:23
333 High 1/26/2015 6:59 drinks Closed 1/26/2015 13:36
444 High 1/20/2015 9:09 meat Completed 1/20/2015 12:32
555 High 1/13/2015 10:27 salad Closed 1/13/2015 12:53
777 High 1/12/2015 11:34 milk Completed 1/13/2015 8:46
888 High 1/9/2015 10:29 crackers Completed 1/9/2015 13:01
999 High 1/16/2015 14:59 soup Closed 1/19/2015 12:26
100 High 1/6/2015 9:05 spices Closed 1/6/2015 19:11
MySQL数据库不介意接受唯一字符。你说的是非Ascii字符吗?我认为你应该把关于重复票证的问题作为一个单独的问题,并用一个你希望数据库存储什么的例子来充实它。为了去掉“以前的值”行,我建议在Excel中编写一个贯穿每行的VBA宏
行=2
do INTIL单元格(第5行)=“5”将是相关列编号。
…
行=行+1
循环
并在循环中检查相关单元格中以前的值,然后删除这些行
if cell(row, 5)="completed" then
range(cells(row,1),cells(row,10)).select
Selection.Delete Shift:=xlUp
row=row-1
endif
然后通过宏命令将excel文件另存为csv:
ActiveWorkbook.SaveAs Filename:= "path\filename.csv",
FileFormat:=xlCSV, Local:=True_
'Local:= depends on the regional settings of your windows.
`e.g. if your reg.set. are western europe and you select
local:=true then the separation sign will be ";"`
在任何情况下,您都应该能够在excel和/或宏中更改csv文件的分隔符号
对于更专业的解决方案,我建议编写一个C#应用程序作为与mySQL数据库进行数据交换的前端。例如,您可以在此使用csv阅读器解决方案
(),它将自动处理分离标志问题。此类的对象将整个数据作为内存中的行数组加载,然后您可以在数组中循环以过滤掉不需要的行。最后,您可以创建一个参数化的SQL字符串,并使用ADO.NET类的对象将数据加载到mySQL数据库中…my抱歉。现在更新基本上我有一些用逗号分隔的字段。。当我将其更改为逗号分隔时,它不会按我希望的方式分隔。例如,其中一个字段将有xxx,xxx,当逗号分隔时,它会将它们分开,而不是将它们作为一列保留在一起。我同意将其分为两个问题,但了解我计划的导入方法很重要。很抱歉给您带来困惑,谢谢您的建议。