Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当加载的原始数据具有许多唯一字符时,如何将CSV数据加载到MySQL数据库中_Mysql_Excel_Csv_Database Design_Import - Fatal编程技术网

当加载的原始数据具有许多唯一字符时,如何将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,当逗号分隔时,它会将它们分开,而不是将它们作为一列保留在一起。我同意将其分为两个问题,但了解我计划的导入方法很重要。很抱歉给您带来困惑,谢谢您的建议。