在MySQL表中检查外部列表是否有重复项?

时间:2010-09-22 20:21:09

标签: mysql excel

我有一个MySQL表和一个Excel文件。我想更新MySQL表以包含来自Excel文件的信息,这很简单 - 只需为创建相应SQL语句的每一行编写一个快速公式。

但首先我要检查所有数据是否匹配正确。因此,如果给定的行具有WidgetID 1001,我想检查该WidgetID是否在MySQL表中。对于给定的行,这很简单 - 只需生成一个SQL语句

SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001"

并执行它。但是,如何在不同时粘贴命令的情况下检查所有行?基本上,我想要像

这样的东西
If (SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001") = 0 Display "1001\n"

但我不知道该怎么做。 (我不太使用SQL!)

澄清:此时想要导入数据!这将是一项复杂的任务,因为数据需要转换并以各种方式输入到十几个不同的表中。现在我只想检查非重复项(这几乎完全是错误,我想,虽然有些可能是实际的新条目)。

2 个答案:

答案 0 :(得分:1)

  1. 将Excel导出为CSV
  2. 确保在WidgetID
  3. 上创建了唯一索引
  4. LOAD DATA INFILE与REPLACE或IGNORE选项一起使用(取决于您是否要使用新值替换重复项,或保留以前的值)

答案 1 :(得分:0)

您可以同时查询MySQL和Excel,这是一个INSERT,但任何查询都可以工作:

Excel VBA: writing to mysql database

以下是SQL Server的另一个示例:

INSERT data from Excel into SQL DB

你可以同时获得OLE DB&来自:http://www.carlprothman.net/Default.aspx?tabid=81

的ODBC连接字符串